Array.prototype的方法原本只能用来操作array对象,但用call和apply可以把任意对象当做this传入这个方法,从而实现泛化。
Function.prototype.uncurrying = function(){
var self = this;//保留this指针
return function(){
var obj = Array.prototype.shift.call(arguments);
return self.apply(obj, arguments);
};
};
var push = Array.prototype.push.uncurrying();
这样就实现了push函数不仅仅操作array对象
通过使用Function.prototype.uncurrying方法,可以将Array.prototype的方法泛化到任意对象上。原本这些方法仅能应用于数组对象,但现在可以通过传递任意对象作为this来调用这些方法。
1054

被折叠的 条评论
为什么被折叠?



