使用':'(冒号)运算符而不是'='等于抛出错误

时间:2015-12-10 12:01:52

标签: javascript constructor

这是一个抛出"SyntaxError: missing ; before statement Line 3"

的示例构造函数
function party() {
    this.cakes = "Truffle Cake",
    this.cookies = "Good Day",
    this.drinks: "Wine";
    }

虽然这不是

function party() {
    this.cakes = "Truffle Cake",
    this.cookies = "Good Day",
    this.drinks = "Wine";
    }

与第二个中的第一个差异是使用等于(=)运算符而不是(:)冒号运算符来为值drinks属性赋值。我想知道Javascript在第一种情况下抛出错误的逻辑。

另外,为什么在以下party.cake等警告中使用“未定义”作为聚会本身就是一个对象

function party() {
    cake = "Truffle Cake";
    cookies = "Good Day";
    drinks = "Wine";
    }

    alert("Cakes in Tonight's Party: " + party.cake);
    alert("Cookies in Tonight's Party: " + party.cookies);
    alert("Drinks in Tonight's Party: " + party.drinks);

由于

1 个答案:

答案 0 :(得分:1)

冒号用于将属性与对象文字中的值分开。 equals将property / variable与正在设置的值分开。

错误消息是正确的,您需要等于因为您正在设置属性。它不是一个对象字面量。