В документации angularjs сказано, что angular.extend
расширяет целевой объект dst путем копирования собственных перечислимых свойств из объектов src
в dst
. Если вы хотите сохранить исходные объекты, вы можете сделать это, передав пустой объект в качестве цели: var object = angular.extend({}, object1, object2)
.
Я довольно смущен количеством args
в приведенном выше высказывании. Поскольку использование angular.extend
должно быть 2 args
:
angular.extend(dst, src);
Таким образом, angular.extend
имеет 2 args
или 3 args
на земле?
Он имеет 2 и 3 аргумента.
Взято из источника:
* @param {Object} dst Destination object.
* @param {...Object} src Source object(s).
* @returns {Object} Reference to 'dst'.
*/
function extend(dst) {
return baseExtend(dst, slice.call(arguments, 1), false);
}
Угловой принимает arguments
из индекса 1
и расширяет их на место назначения параметра dst
.
JSDoc объясняет, что вы можете иметь несколько исходных объектов, которые будут отправляться в пункт назначения. У вас может быть даже 4, 5 или более аргументов.
arguments[2]
и действует соответствующим образом.