直接上代码
var User = {
count:
1,
getCount:
function() {
return this.count;
}
};
console.log(User.getCount());
var func = User.getCount;
console.log(func());
输出 1 和 undefined
为什么呢?
因为func是在window的上下文中被执行的,所以会访问不到count属性。
那怎么样才能访问到count属性呢?
可以使用Function.prototype.bind();Function.prototype.apply();Function.prototype.call();
var func = User
.getCount.bind(User)
console
.log(func())
var func = User
.getCount.apply(User)
console
.log(func)
var func = User.getCount.
call(User);
console.log(func);