-
event代表當前觸發(fā)的事件對象。它是一個JavaScript原生對象,包含有關(guān)事件的信息,例如事件類型、目標元素、鼠標位置等。通過訪問event對象,可以獲取和修改這些信息,例如:
function handleClick(event) {
console.log('Event type:', event.type);
console.log('Target element:', event.target);
console.log('Mouse position:', event.clientX, event.clientY);
}
-
this代表當前執(zhí)行上下文中的當前對象。在不同的執(zhí)行上下文中,this可以指向不同的對象。例如,當你在對象方法中使用this時,它將指向該對象,例如:
var person = {
name: 'Alice',
sayHello: function() {
console.log('Hello, my name is', this.name);
}
};
person.sayHello(); // Hello, my name is Alice
this是一個在運行時確定的關(guān)鍵字,它通常指向當前執(zhí)行上下文中的當前對象。在不同的執(zhí)行上下文中,this 可以指向不同的對象。
-
that通常用作一個變量名,它是在函數(shù)作用域中保存this引用的一個常用技巧。這是因為在JavaScript中,this的值會根據(jù)執(zhí)行上下文的不同而改變,可能會導致一些意想不到的錯誤。通過使用that可以解決這個問題,例如:
var person = {
name: 'Alice',
sayHello: function() {
var that = this;
setTimeout(function() {
console.log('Hello, my name is', that.name);
}, 1000);
}
};
person.sayHello(); // Hello, my name is Alice
由于setTimeout() 方法會創(chuàng)建一個新的執(zhí)行上下文,如果不使用 that 來保存this,在內(nèi)部函數(shù)中,this 的值將不再是對象person,而是全局對象或undefined,導致錯誤的結(jié)果。通過使用 that,可以在內(nèi)部函數(shù)中訪問 person 對象,并正確地打印出 "Hello, my name is Alice"。
-
window是瀏覽器中的全局對象,它包含了瀏覽器中所有的全局屬性和方法。在瀏覽器中,所有的JavaScript代碼都運行在一個全局的上下文中,該上下文中的this默認指向window對象。例如:
console.log(this === window); // true
它們都指向同一個對象,所以這個比較表達式的結(jié)果是 true