在javascript中引用对象自己的属性

时间:2015-05-19 16:11:20

标签: javascript

我是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?

我相信这就是我在我的代码中看到的内容,但这反映出"这个"将是引用自己属性的唯一方式,而不是直接引用它们。所以也许我误解了一些事情。

1 个答案:

答案 0 :(得分:2)

是的,如果你省略了这个'

,d将被定义为一个全局变量

如果你想要一个只能在你的对象内部访问的变量,你必须附加' var'它:

var d = "string";

如果您想在将它用作创建新对象的类之后引用它,那么您必须将其作为字符串返回:

var d = "string;
return d

或者作为一个嵌套的obeject,就像你在第一时间实现这个类一样:

var d="string";
return {'val':d}