このようなカレー関数では:
var curry = function() {
var slice = Array.prototype.slice,
args = slice.call(arguments),
fn = args.shift();
return function(){
return fn.apply(null, args.concat(slice.call(arguments)));
};
};
と の間に違いはありますthis
か? それが違いを生む可能性があるケースは見当たりません。null
fn.apply
編集 :
この回答のおかげで、今ではかなり明確になったと思います。これをアンダーサンドするために作成した小さな例を次に示します。
function msg() {
console.log(this.name);
}
var foo = { name: "foo"};
var msg_this = curry_this(msg);
var msg_null = curry_null(msg);
msg_this(); //msg.call(null) -> undefined
msg_null(); //msg.call(null) -> undefined
msg_this.call(foo); //msg.call(foo) -> foo
msg_null.call(foo); //msg.call(null) -> undefined
curry_this
戻るfn.apply(this,...
とcurry_null
戻る_fn.apply(null...