我是 javascript 的新手,很多方面似乎违反直觉。如果我定义:
var A = function() {
return {
d:"property-of-object-returned-by-constructor",
method:function() {
d = "Not my property";
}
}
}
myObj = new A();
在 myObj.method() 中引用属性 d 的唯一方法是使用 this.d,我是否正确?
例如,我是否更正了 myObj.method() 不会更改属性 d 但实际上创建了一个与 myObj.d 完全无关的全局变量 d?
我相信这就是我在我的代码中所看到的,但是“this”将是引用自己属性的唯一方式,而不是简单地直接引用它们,这是违反直觉的。所以也许我误会了什么。
最佳答案
是的,如果省略“this”,d 将被定义为全局变量
如果您想要一个只能从对象方法内部访问的变量,则必须向其附加“var”:
var d = "string";
如果您想在将它用作创建新对象的类之后引用它,那么您要么必须将它作为字符串返回:
var d = "string;
return d
或者作为另一个嵌套对象,就像您首先实例化类一样:
var d="string";
return {'val':d}
关于javascript - 在javascript中引用对象自身的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30330844/