Изучение Javascript: запятая после объявления массива-члена?

#javascript #knockout.js

#javascript #knockout.js

Вопрос:

Я изучаю Javascript и наткнулся на этот код из примера Knockout.JS:

 var viewModel = {
    people: [
        new Person("Annabelle", ["Arnie", "Anders", "Apple"]),
        new Person("Bertie", ["Boutros-Boutros", "Brianna", "Barbie", "Bee-bop"]),
        new Person("Charles", ["Cayenne", "Cleopatra"])
        ],
    showRenderTimes: ko.observable(false)
};
  

Если я правильно понимаю, ‘people’ — это переменная-член, содержащая массив объектов ‘Person’. Но почему после массива стоит запятая? Разве ‘showRenderTimes’ не должна быть следующей переменной-членом, объявленной в классе? Или это какое-то расширение элемента ‘people’? Почему эта запятая не является точкой с запятой?

Вот полный список на случай, если он вам понадобится:

 var Person = function(name, children) {
    this.name = name;
    this.children = ko.observableArray(children);

    this.addChild = function() {
        this.children.push("New child");
    }.bind(this);
}

// The view model is an abstract description of the state of the UI, but without any knowledge of the UI technology (HTML)
var viewModel = {
    people: [
        new Person("Annabelle", ["Arnie", "Anders", "Apple"]),
        new Person("Bertie", ["Boutros-Boutros", "Brianna", "Barbie", "Bee-bop"]),
        new Person("Charles", ["Cayenne", "Cleopatra"])
        ],
    showRenderTimes: ko.observable(false)
};

$( document ).ready(function() {
    // Define a "Person" class that tracks its own name and children, and has a method to add a new child
    ko.applyBindings(viewModel);
});
  

Ответ №1:

Здесь у нас есть a, viewModel Object который имеет два поля: people и showRenderTimes .

Итак, упрощая, это выглядит так:

 var viewModel = {people:'something', showRenderTimes:'somethingElse'};
  

Вы должны разделять каждое поле запятой , , и именно поэтому оно там.

Другой пример:

 var viewModel = {
  people: [],
  showRenderTimes: 'something'
};
  

Ответ №2:

Вот как вы создаете объекты в JavaScript:

 var obj = {

    name1:value1,
    name2:value2,
    name3:value3

};