var name = "windowsName";
function fn() {
var name = "Cherry";
innerFunction();
function innerFunction() {
console.log(111);
console.log(this.name);
}
}
var a = {
name: "objA",
fn: function () {
console.log(222);
console.log(this.name);
},
fn2: function () {
console.log(this.name); //objA
fn();
//输出111 windowsName 这里的fn找的是全局函数fn,而不是a对象里的方法fn??
},
};
a.fn2();`
如题,对象方法里调用另一个与全局函数重名的方法,结果是调用全局函数,请问是什么原因呢?首先在 a.fn2() 中,this是对象a,那么为什么不去找对象a中的方法呢?
不知道以下理解是不是正确 - 如果函数前没有调用的对象,也没有通过call apply bind改变this指向,那么就指向window?
萌新求指教~🙏