对象语法和这在javascript中

时间:2010-11-19 16:21:35

标签: javascript

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

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

   var x = new Person();
   alert(x.name);

3 个答案:

答案 0 :(得分:5)

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

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

var x = new Person();
alert(x.name);

如果你真的想使用对象文字语法,你可以,但最好在构造函数中避免使用它(这是你的代码中所拥有的)。例如,这有效,但 与原始代码相同

var Person = {
    name: "test"
};
alert(Person.name);

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

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

...虽然我不喜欢这样做,因为I prefer named functions(该功能是匿名的)。

答案 1 :(得分:0)

与访问任何其他财产的方式相同。

例如:

alert({ name: -1 }.name);

您的代码示例语法无效 :字符仅用于对象文字

要在构造函数(或其他)函数中使用属性,应使用正常赋值:

function Person(){
    var thing = "test";        //Assign a variable
    this.name = "test";        //Assign a property
}
alert(new Person().name);

答案 2 :(得分:0)

my_obj = {name:'john', age:31};
alert(my_obj.name);