javascript之反柯里化uncurrying
2024-09-02 14:25:56
使用方法:
// 使用
var push=Array.prototype.push.uncurrying();
var obj={
"length": 1,
"0": 1
}
push(obj,2);
console.log(obj); // { 0=1, 1=2, length=2} function fn(name){
console.log(this.name); //test
console.log(arguments); //[123, 234]
}
// 使用
var apply=Function.prototype.apply.uncurrying();
apply(fn,{name: 'test'}, [123,234]);
实现方法一:
Function.prototype.uncurrying=function(){
var self=this;
return function(){
var obj=Array.prototype.shift.call(arguments); //取出第一个参数
return self.apply(obj, arguments); //第一个参数作为this对象传递
};
};
实现方法二:
Function.prototype.uncurrying=function(){
var self=this;
return function(){
return Function.prototype.call.apply(self, arguments);
};
};
总结:uncurrying方法主要用于框架封装,当然一般的开发场景也可以使用,但根据本人经验来看,用的不是很多。
最新文章
- xcode8 info.plist文件中的各种权限。
- phantomjs模拟登录
- iOS开发Swift篇—(一)简单介绍
- lintcode 中等题:minimum window substring 最小子串覆盖
- java Map的遍历
- Cppcheck软件使用
- MySql 如何实现不同数据库同步【2个】
- ecshop 商品分类页 取得当前分类下的子分类方法
- HDOJ 1260 DP
- Ubuntu下比较通用的makefile实例
- matlab 写文件
- 页面制作学习笔记:D2.Photoshop切图基础知识
- CSS【06】:CSS显示模式
- vue中Axios请求豆瓣API数据并展示到Swipe中
- PL/SQL学习笔记之数据类型中的标量、LOB
- MySQL DataType--字符串类型
- Haskell语言练习
- linux-ubuntu14.04以下使用gdb出现的问题
- Android学习之适配器SimpleCursorAdapter
- 《JAVA---day03---运算符》
热门文章
- 1005 继续(3n+1)猜想(C#)
- 2019 欢聚时代java面试笔试题 (含面试题解析)
- ssm(spring+springmvc+mybatis)整合之环境配置
- Vue学习之webpack调用第三方loader(十五)
- Nginx 常用命令并实现最基本的反向代理
- 深入理解JVM-java虚拟机栈
- 第9章 运行TensorFlow
- CAS 的问题
- 《大象 Thinking in UML》读书笔记:Process-oriented vs. Object-oriented
- pyecharts绘制map地图