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

Javascript 使用';:';(冒号)运算符,而不是'=';等于抛出错误,javascript,constructor,Javascript,Constructor,下面是一个示例构造函数,它抛出“SyntaxError:missing;before statement Line 3” 而这并不是 function party() { this.cakes = "Truffle Cake", this.cookies = "Good Day", this.drinks = "Wine"; } 与第二个中的第一个不同之处在于使用了等于(=)运算符而不是(:)冒号运算符来指定值属性值。我想知道Javascript在第一种情况下抛

下面是一个示例构造函数,它抛出“SyntaxError:missing;before statement Line 3”

而这并不是

function party() {
    this.cakes = "Truffle Cake",
    this.cookies = "Good Day",
    this.drinks = "Wine";
    }
与第二个中的第一个不同之处在于使用了等于(=)运算符而不是(:)冒号运算符来指定值
属性值。我想知道Javascript在第一种情况下抛出错误的逻辑

另外,为什么在下面的party.cake etc中,由于party本身就是一个对象,所以会发出“Undefined”警报

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);

感谢

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


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

你可能想读一读——它简要地介绍了基础知识,但我认为这足以说明你的错误所在逻辑是语言本质上有语法,第一个是无效语法。为什么它应该工作?至于最后一个代码块,它为什么不给你
未定义的
?您是否阅读过JavaScript教程,其中告诉您在函数中执行赋值将为该函数添加属性?是的,我已经阅读过,但我仍处于初始阶段。此外,函数基本上都是JS对象,所以如果我喝了
酒:“Wine”
(删除此
运算符)在第一个示例中,不会出现语法错误。你怎么解释呢?请不要在一篇帖子里问两个问题。每个帖子一个问题会使问题对其他人更有用。1是构造函数,构造函数是实现内部[[call]]和[[construct]]方法的对象。此外,如果我喝
饮料:“葡萄酒”
(删除此
运算符)在第一个示例中,不会出现语法错误。你会怎么解释呢?那是因为在这种情况下,
饮料:
被认为是一种危险。我不明白你的第一句话是什么意思,很明显它是一个构造函数
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);