// var cost = (function () {
// var args = [];
// return function () {
// if (arguments.length === 0) {
// var money = 0;
// for (var i = 0, l = args.length; i < l; i++) {
// money += args[i]
// }
// return money;
// }
// else {
// Array.prototype.push.apply(args, arguments)
// }
// }
// })()
// cost(200)
//这个只要用于保存参数,或者判断是否需要进行一次性求值
var curring = function (fn) {
var arg = [];
return function () {
if (arguments.length === 0) {
return arg
}
else {
[].push.apply(arg, arguments);
return arguments.callee
}
}
};
var cost = (function () {
var money = 0;
return function () {
for (var i = 0, l = arguments.length; i < l; i++) {
money += arguments[i]
}
return money
}
}
)();
var cost = curring(cost);
cost(300);
Function.prototype.uncurrying = function () {
console.log(this)//谁调用指向谁
var self = this;
return function () {
var obj = Array.prototype.shift.call(arguments);//对象
return self.apply(obj, arguments)//数组
}
};
var push = Array.prototype.push.uncurrying();
(function () {
push(arguments, 4);
console.log(arguments,‘arguments‘);
})(1, 2, 3)
原文:https://www.cnblogs.com/Ewarm/p/11928939.html