Javascript组合原型函数
Javascript composition prototype function
Function.prototype.times = function(val){
var that = this;
return function (arg) {
if(val == 0){
return that.call(this,arg);
}
else{
var newArg = that.call(this,arg);
var newVal = val - 1;
return that.call(that.times,newVal,newArg);
}
}
}
var add_two = function (num) { return num + 2; };
var add_six = add_two.times(3);
alert(add_six(2));
有人可以帮助我解释为什么这段代码不起作用吗?谢谢!
有几个问题,这里有一个固定版本:
Function.prototype.times = function(val){
var that = this;
return function (arg) {
if(val == 1) {
return that.call(this,arg);
} else{
var newArg = that.call(this,arg);
var newVal = val - 1;
return that.times.call(that,newVal)(newArg);
}
}
}
var add_two = function (num) { return num + 2; };
var add_six = add_two.times(3);
alert(add_six(2)); // 8
请检查一下。链接
基本上add_six不是函数,而是函数的引用。 检查下面的代码
alert(typeof add_six(2));
相关文章:
- 创建对象函数原型和代码是错误的
- 使用sinon.js创建一个“;“间谍对象”;使用基于真实构造函数/原型的间谍方法
- 使用构造函数 - 原型从文本框输出值
- 为什么函数对象的实例没有继承函数原型属性
- 获取函数原型的源代码
- 挂钩文档.使用函数原型创建元素
- 理解函数原型和__proto__
- 在Javascript的函数原型中创建函数
- Emberjs :哈希中的函数原型
- Javascript函数在父函数原型中带有原型
- 构造函数原型-继承混淆
- 本地作用域函数原型覆盖
- 使用函数原型的 JavaScript 继承问题
- 为什么我的代码认为 canvas 函数在 JavaScript 中的构造函数原型中是未定义的
- 所有内容也都链接到函数原型
- Javascript MDN 函数原型绑定 polyfill 在数组中是可枚举的
- Javascript将对象传递给函数原型
- 我应该使用构造函数/原型吗?
- 为什么函数原型不能修改 .
- 删除函数原型对象