-1
我知道这个问题是相当愚蠢的。为什么在一个方法中的关键字
相关的代码:
var myObj = {
name: 'Popo',
lastName: 'Shomo',
fullName: function(){
return name + " " + lastName;
}
};
我知道加入this.name
和this.lastName
它会工作,但我的问题是:为什么不能去其词法范围,并从那里抢属性?我知道它完全是D-U-M-B,但我想知道背后的正确原因。
如果你之前没有包含'name'属性并将其中一个设置为'myObj.name ='Popo',那么'name'是否仍然会引用该函数中的'this.name'?这是一个潜在的令人困惑的范围问题,它使得这个简单得多的解决方案(以及为什么[with'语句](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with )已弃用)。 – Ryan