Вот пример функции конструктор, который выбрасывает "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 и т.д. предупреждения с «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);
Благодаря
Возможно, вы захотите прочитать [MDN Работа с объектами] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects) - он кратко описывает основы, но я думаю, что должно быть достаточно, чтобы показать вам, где вы поступили не так. –
Логика заключается в том, что язык по своей природе имеет синтаксис, а первый - недопустимый синтаксис. Почему * должен * работать? –
Что касается последнего кода, снова почему * не должен * он дает вам 'undefined'? Прочитали ли вы учебник по JavaScript, в котором говорится, что выполнение назначений внутри функции добавит свойства к этой функции? –