this
button.addEventListener("click", function() {
console.log(this); // this 是 button
});
button.onclick = function() {
console.log(this); // this 是 button
};
button.onclick = function() {
console.log(this);
};
button.onclick.call(span); // this 是 span
$("ul").on("click", function() {
console.log(this); // this 是 ul
});
$("ul").on("click", "li", function() {
console.log(this); // this 是点击所对应的 li
});
function X() {
return (object = {
name: "object",
options: null,
f1(x) {
this.options = x;
this.f2();
},
f2() {
this.options.f2.call(this);
}
});
}
var options = {
name: "options",
f1() {},
f2() {
console.log(this); // this 是 objcet
}
};
var x = X();
x.f1(options);
function f1() {
console.log(this); // this 在浏览器是 window
}
function f2() {
"use strict";
console.log(this); // this 是 undefined
}
let obj = {
fn() {
console.log(this);
}
};
obj.fn(); // this 是 obj
let f3 = obj.fn;
f3(); //this 在浏览器是 window
var f4 = obj.fn;
f4(); //this 在浏览器是 window
window.f4(); //this 在浏览器是 window