このようなカレー関数では:
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か? それが違いを生む可能性があるケースは見当たりません。nullfn.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...