我是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?
我相信这就是我在我的代码中看到的内容,但这反映出"这个"将是引用自己属性的唯一方式,而不是直接引用它们。所以也许我误解了一些事情。
答案 0 :(得分:2)
是的,如果你省略了这个'
,d将被定义为一个全局变量如果你想要一个只能在你的对象内部访问的变量,你必须附加' var'它:
var d = "string";
如果您想在将它用作创建新对象的类之后引用它,那么您必须将其作为字符串返回:
var d = "string;
return d
或者作为一个嵌套的obeject,就像你在第一时间实现这个类一样:
var d="string";
return {'val':d}