javascript - 在javascript中引用对象自身的属性

标签 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?

我相信这就是我在我的代码中所看到的,但是“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/

相关文章:

javascript - JQuery UI 可排序,输入框不可编辑

javascript - IE8 在 JavaScript/jQuery 中减法错误?

javascript - 多个 SetTimeout 一起执行

javascript - 我的 jQuery 插件中定义的方法返回错误 : undefined is not a function?

javascript - 文件更改时 Webpack 开发服务器不会重新编译

javascript - 在所有 promise 解决后返回

javascript - ajax 成功时打开页面弹出窗口

Javascript try...catch...else...终于像 Python、Java、Ruby 等

javascript - 如何使用其他页面的链接打开特定选项卡?

javascript - 如何在js中使用return true/false