雜記——簡單理解上下文和this
阿新 • • 發佈:2019-01-25
直接上程式碼
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);