this绑定的优先级

本文深入探讨了JavaScript中this关键字的绑定规则,包括默认、隐式、显式和new调用四种规则,并通过实例展示了不同调用方式下this的指向变化,强调了显示绑定优先级高于默认绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们已经了解了 this绑定 的四条规则,一个位置调用多条规则,需要指定规则的优先级。 显然,默认绑定的优先级是最低的。

 function foo() {
    console.log( this.a );
}
var obj1 = {
    a: 111,
    foo: foo
};
var obj2 = {
    a: 222,
    foo: foo
};

obj1.foo(); //111
obj2.foo(); //222

obj1.foo.call( obj2 ); // 222
obj2.foo.call( obj1 ); // 111
复制代码

显示绑定的优先级更高

function foo (something) {
    this.a = something;
}
var obj1 = {
    foo: foo
};
var obj2 = {};
obj1.foo(2);
console.log( obj1.a );

obj1.foo.call(   );
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值