关于js里面的this 对象的 指代问题【疑问】
最近有个疑惑(关于this的)
var name ="the window"; //window
var object={
name :"my object",
getName:function(){
return this.name;
}
}
正常情况:object.getName(); //“my object”
2. (object.getName)(); //"my object"
3. (object.getName=object.getName)(); //"the window"
第三个,书上的解释是,
> 先执行一条赋值语句,然后再调用赋值后的结果。因为这个赋值的表达式是函数本身,所以this的值不能维持
小弟不解,为什么是the window 。还请大侠们指点
------解决方案--------------------3.个好理解 通过表达得出是一个 函数
2.我倒以为 是 the window 了
------解决方案--------------------
abc.fn() // this ===abc
xyz.fn() // this === xyz
//fn点号前是哪个,this就指向哪个,没有就指向 window
------解决方案--------------------function x1(){
object.getName = 'x1';
}
function x2(){
var object.getName = 'x2';
}
这两个有什么不一样。
function xx1(){
object.getName = function(){
return this.name;
}
}
function xx2(){
object.getName= object.getName;
}
这两个是不是一样