使用方法:

 // 使用
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方法主要用于框架封装,当然一般的开发场景也可以使用,但根据本人经验来看,用的不是很多。

最新文章

  1. xcode8 info.plist文件中的各种权限。
  2. phantomjs模拟登录
  3. iOS开发Swift篇—(一)简单介绍
  4. lintcode 中等题:minimum window substring 最小子串覆盖
  5. java Map的遍历
  6. Cppcheck软件使用
  7. MySql 如何实现不同数据库同步【2个】
  8. ecshop 商品分类页 取得当前分类下的子分类方法
  9. HDOJ 1260 DP
  10. Ubuntu下比较通用的makefile实例
  11. matlab 写文件
  12. 页面制作学习笔记:D2.Photoshop切图基础知识
  13. CSS【06】:CSS显示模式
  14. vue中Axios请求豆瓣API数据并展示到Swipe中
  15. PL/SQL学习笔记之数据类型中的标量、LOB
  16. MySQL DataType--字符串类型
  17. Haskell语言练习
  18. linux-ubuntu14.04以下使用gdb出现的问题
  19. Android学习之适配器SimpleCursorAdapter
  20. 《JAVA---day03---运算符》

热门文章

  1. 1005 继续(3n+1)猜想(C#)
  2. 2019 欢聚时代java面试笔试题 (含面试题解析)
  3. ssm(spring+springmvc+mybatis)整合之环境配置
  4. Vue学习之webpack调用第三方loader(十五)
  5. Nginx 常用命令并实现最基本的反向代理
  6. 深入理解JVM-java虚拟机栈
  7. 第9章 运行TensorFlow
  8. CAS 的问题
  9. 《大象 Thinking in UML》读书笔记:Process-oriented vs. Object-oriented
  10. pyecharts绘制map地图