咱們知道this對象是在函數執行時,自動生成的一個內部對象,只能在函數內部使用,就是說它只與函數的執行環境有關聯 。javascript
接下來,咱們看一下幾種常見的this用法。java
console.log(this); // Window
複製代碼
function fn() {
console.log(this);
}
fn(); // Window
複製代碼
var obj = {
name: 'a',
f: function(x, y) {
console.log(this);
}
};
obj.f(1, 2); // {name: "a", f: ƒ}
var ff = obj.f;
ff(); // Window // 這裏至關於window.ff();
複製代碼
var obj = {
name: 'a',
f: function(x, y) {
console.log(this);
}
};
var ff = obj.f;
ff.call(obj, 1, 2); // {name: "a", f: ƒ}
var arr = [];
ff.call(arr, 1, 2); // []
ff.apply(obj, [1, 2]); // {name: "a", f: ƒ}
複製代碼
function F() {
console.log(this);
}
var obj2 = new F(); // F()
複製代碼