var a = 20;
var foo = {
a: 40,
bar: function () {
var a = 10;
return this.a; //>=20
}
};
console.log(
foo.bar(), // 40
(foo.bar)(), // 40
(foo.bar = foo.bar)(), // 20
(foo.bar, foo.bar)(), // 20
(foo.bar.apply(window)), // 20
(foo.bar.apply(foo))// 40
);
經過賦值,運算符運算後,都是純粹的函數,不是對象方法的引用。所以函數指向的this都是windows的