如果我使用{}创建对象然后尝试引用属性,我该怎么做?
function Person(){
this.name : "test";
}
var x = new Person();
alert(x.name);
答案 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);