先上一段没有起别名的代码:
function foo() {
console.log( this.a );
}
var obj2 = {
a: 42,
foo: foo
};
var a=10;
obj2.foo(); // 42
this会寻找到obj2里面的变量
起别名的代码
function foo() {
console.log( this.a );
}
var obj2 = {
a: 42,
foo: foo
};
var a=10;
var b=obj2.foo;
b();//10
起完别名后相当于多执行了一个函数,所以无法找到obj2里面的内容只能去全局找