function one(x, y, z) {
console.log(this.age); // 改变指前是--undefined 改变后--100
console.log(this); // 改变前--Window 改变后--Two
console.log(x + y); // 改变前--NaN 改变后--30
console.log(z); // 1
return x + y + z;
}
function Two() {
this.age = 100;
}
var two = new Two();
var ff = one.bind(two, 10, 20); // x 和 y 的值
// var ff = one.bind(two);
// bind改变指向并不会直接调用,apply call是直接调用
// 要想返回结果是函数,只能通过 bind改变指向
console.log(ff(1)); // 这里传的是 z 的值 结果:31
// 点击任意键
document.onclick = function() {
setTimeout(function() {
console.log(this); // 此时的this是--Window 改变指向后--document
}.bind(this), 100);
}
通过bind改变this指向
最新推荐文章于 2023-03-09 10:47:16 发布