- 使用
bind
方法:
bind
方法会创建一个新的函数,在这个新函数中,this
被绑定到指定的值。
- 示例代码如下:
function A() {
const domElement = document.getElementById('myButton');
function B() {
console.log(this === domElement);
}
domElement.addEventListener('click', B.bind(domElement));
}
A();
- 使用
call
或apply
方法:
- 在事件处理函数被调用时,可以使用
call
或apply
来设置this
的值。
- 示例代码如下:
function A() {
const domElement = document.getElementById('myButton');
function B() {
console.log(this === domElement);
}
domElement.addEventListener('click', function () {
B.call(domElement);
});
}
A();
- 使用ES6箭头函数:
- 箭头函数没有自己的
this
,它的this
继承自外层作用域。
- 示例代码如下:
function A() {
const domElement = document.getElementById('myButton');
domElement.addEventListener('click', () => {
console.log(this === domElement);
});
}
A();