我们已经了解了 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( );
复制代码