对象语法和这在javascript中

0 javascript

如果我使用{}创建一个对象,然后尝试引用一个属性,我该怎么做?

function Person(){
    this.name : "test";
   }

   var x = new Person();
   alert(x.name);
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 5

您的语法已关闭,在您的情况下,您只需执行此操作:

function Person(){
    this.name = "test";
    //        ^--- =, not :
}

var x = new Person();
alert(x.name);
Run Code Online (Sandbox Code Playgroud)

如果你真的想使用对象文字语法,你可以,但最好在构造函数中避免它(这是你在代码中所拥有的).这工作,例如,但一样的你原来的代码:

var Person = {
    name: "test"
};
alert(Person.name);
Run Code Online (Sandbox Code Playgroud)

你甚至可以用这种方式定义函数(和人们一样):

var Person = {
    name: "test",
    speak: function() {
        alert(this.name);
    }
};
Person.speak(); // alerts "test"
Run Code Online (Sandbox Code Playgroud)

...虽然我不喜欢这样做,因为我更喜欢命名函数(该函数是匿名的).