Javascript对象语法有问题

时间:2011-11-05 00:54:21

标签: javascript oop syntax

我明显错了(因为它不起作用)但我认为以下两个代码块功能完全相同,但一个是按预期工作,另一个不是。

工作:

mfObject.questions = {}
mfObject.questions.active = "#"+$('.ui-page-active').attr('id');

工作:

mfObject.questions = {
    active : "#"+$('.ui-page-active').attr('id');
}

1 个答案:

答案 0 :(得分:3)

在属性分配结束时,您不应该有;

mfObject.questions = {
    active : "#"+$('.ui-page-active').attr('id') // <-- no semicolon here
}

如果有多个赋值,则在对象文字内分配的属性用逗号分隔,并且分号永远不会作为属性赋值的终止符出现(尽管如果为属性分配了函数,它们可能在内部存在)。

// Correct property assignment in an object literal
mfObject.questions = {
  active: "someval",
  prop1: "someval1",
  prop2: "someval2",
  prop3: function() {
    console.log("I have semicolon terminators in a function");
    console.log("because I have multiple statements");
  },
  prop4: "someval4"
};