Каково различие между __, уменьшают __ и __ reduce_ex __?

Я хотел бы проиллюстрировать простые вещи на простых примерах:)

Вот очень простой пример Service:


angular.module('toDo',[])

.service('dataService', function() {

  // private variable
  var _dataObj = {};

  // public API
  this.dataObj = _dataObj;
})

.controller('One', function($scope, dataService) {
  $scope.data = dataService.dataObj;
})

.controller('Two', function($scope, dataService) {
  $scope.data = dataService.dataObj;
});

И здесь jsbin

И вот очень простой пример Factory:


angular.module('toDo',[])

.factory('dataService', function() {

  // private variable
  var _dataObj = {};

  // public API
  return {
    dataObj: _dataObj
  };
})

.controller('One', function($scope, dataService) {
  $scope.data = dataService.dataObj;
})

.controller('Two', function($scope, dataService) {
  $scope.data = dataService.dataObj;
});

И здесь jsbin


Если это слишком просто, здесь является более сложным примером

Также см. Ответ здесь для комментариев о соответствующих рекомендациях

16
задан Electrons_Ahoy 3 April 2009 в 22:09
поделиться

2 ответа

в документах говорится, что

, Если обеспечено, при солении времени __reduce__() будет назван без аргументов, и оно должно возвратить или строку или кортеж.

, С другой стороны,

иногда полезно знать версию протокола при реализации __reduce__. Это может быть сделано путем реализации метода, названного __reduce_ex__ вместо __reduce__. __reduce_ex__, то, когда это существует, называют в предпочтении более чем __reduce__ (можно все еще обеспечить __reduce__ для назад совместимости). __reduce_ex__ метод назовут с единичным целочисленным аргументом, версией протокола.

На держащей руке, Guido говорит , что это - область, которая могла быть очищена.

26
ответ дан 30 November 2019 в 17:40
поделиться

__reduce_ex__ то, чем __reduce__ должен был быть, слишком никогда не становился. __reduce_ex__ работы как __reduce__, но протокол рассола передается.

5
ответ дан 30 November 2019 в 17:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: