取自http://ejohn.org/apps/learn/#84
function bind(context, name){
return function(){
return context[name].apply(context, arguments);
};
}
我真的很想知道这是如何工作的。但是,如果您从最里面的函数 console.log 参数,则此函数有效,它们不存在。那么它们怎么可能用在调用它们的 apply 函数中呢?
换句话说:
function bind(context, name){
console.log(arguments.length === 2, true);
return function(){
console.log(arguments.length === 0, true);
return context[name].apply(context, arguments);
};
}
您可以 console.log 外部函数中的参数并获取长度属性。但是从最里面的函数开始,arguments.length === 0。