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 и устанавливать свойства для этого объекта, а также создавать функции в этом объекте. Обратитесь сюда для получения более подробной информации