Javascript точка оператора

Я нубский javascript, поэтому я не понимаю, почему в приведенном ниже коде автор использует Avengers.cast вместо просто Avengers?

var myApp = angular.module('myApp', []);
    myApp.factory('Avengers', function() {
        var Avengers = {};
        Avengers.cast = [{
            name: "Robert Downey Jr.",
            character: "Tony Stark / Iron Man"
        }];
        return Avengers;
    })


function AvengersCtrl($scope, Avengers) {
    $scope.avengers = Avengers;
}

3 ответа

Решение
    var Avengers = {};

Это значит: создать новый объект и ссылаться на него с помощью переменной Avengers

    Avengers.cast = [{
        name: "Robert Downey Jr.",
        character: "Tony Stark / Iron Man"
    }];

Это означает, что только что созданный объект теперь имеет свойство с именем cast, Это массив и содержит ровно один объект (с двумя свойствами со значениями String).

Чтобы ответить на ваш конкретный вопрос: существует несколько способов передачи информации.

Автор мог бы сделать Avengers обслуживать только массив вместо объекта с массивом.

Таким образом, выбор был несколько произвольным, как вы, кажется, выбираете.

Тем не менее, если автор планирует расширить Avengers сервис с большим количеством свойств, то именно поэтому был выбран объект с массивом.

Хотя, если вы просто собираетесь это сделать, вы должны проверить constant - может быть, это будет более подходящим, чем factory,

В вашем коде cast собственностью Avengers установлен для конкретного объекта. Давай скажем, изначально Avengers не имеет значения. В заводском разделе, Avengers стал

Avengers.cast = [{
    name: "Robert Downey Jr.",
    character: "Tony Stark / Iron Man"
}];

Вы можете использовать это где-то в вашем коде, как console.log(Avengers.cast), Следующий пример для функции;

myApp.factory('Avengers', function() {
    return {
        helloWorld: function() {
            return "Hello, World!"
        }
    };
});

Ты можешь использовать Avengers.helloWorld() где-то в вашем коде.

Таким образом, вы можете создавать объекты с фабрикой angular.js и устанавливать свойства для этого объекта, а также создавать функции в этом объекте. Обратитесь сюда для получения более подробной информации

Другие вопросы по тегам