为什么angular.extend用作javascript推送函数的输入参数?

为什么angular.extend用作javascript推送函数的输入参数?,javascript,angularjs,Javascript,Angularjs,我最近在爱奥尼亚密码笔上发现了以下代码: $scope.add = function() { var nextMessage = messageOptions[messageIter++ % messageOptions.length]; // some string $scope.messages.push(angular.extend({}, nextMessage)); } 为什么开发人员使用angular.extend({},nextMessage)作为javas

我最近在爱奥尼亚密码笔上发现了以下代码:

  $scope.add = function() {
    var nextMessage = messageOptions[messageIter++ % messageOptions.length];  // some string
    $scope.messages.push(angular.extend({}, nextMessage));
}

为什么开发人员使用angular.extend({},nextMessage)作为javascript推送函数的输入参数,而不是直接将nextMessage作为参数传递?

它用于创建一个副本
nextMessage
对象并将该副本推送到数组中

通过复制自己的可枚举项扩展目标对象dst 从src对象到dst的属性。您可以指定多个src 物体。如果要保留原始对象,可以通过 将空对象作为目标传递:var object=angular.extend({}, 对象1,对象2)


它用于创建副本
nextMessage
对象,并将该副本推送到数组中

通过复制自己的可枚举项扩展目标对象dst 从src对象到dst的属性。您可以指定多个src 物体。如果要保留原始对象,可以通过 将空对象作为目标传递:var object=angular.extend({}, 对象1,对象2)


它用于创建副本
nextMessage
对象,并将该副本推送到数组中

通过复制自己的可枚举项扩展目标对象dst 从src对象到dst的属性。您可以指定多个src 物体。如果要保留原始对象,可以通过 将空对象作为目标传递:var object=angular.extend({}, 对象1,对象2)


它用于创建副本
nextMessage
对象,并将该副本推送到数组中

通过复制自己的可枚举项扩展目标对象dst 从src对象到dst的属性。您可以指定多个src 物体。如果要保留原始对象,可以通过 将空对象作为目标传递:var object=angular.extend({}, 对象1,对象2)

Javascript的Array.push()方法将推送项,而不是扩展数组

var array1 = [1, 2, 3, 4];
var array2 = ['a', 'b'];
array1.push.apply(array1, array2);
console.log(foo); // will output [1, 2, 3, 4, "a", "b"]
extend()方法将扩展数组/对象,而不是推送项

var array1 = [1, 2, 3, 4];
var array2 = ['a', 'b'];
angular.extend(array1, array2);
console.log(foo); // will output ["a", "b", 3, 4]
Javascript的Array.push()方法将推送项,而不是扩展数组

var array1 = [1, 2, 3, 4];
var array2 = ['a', 'b'];
array1.push.apply(array1, array2);
console.log(foo); // will output [1, 2, 3, 4, "a", "b"]
extend()方法将扩展数组/对象,而不是推送项

var array1 = [1, 2, 3, 4];
var array2 = ['a', 'b'];
angular.extend(array1, array2);
console.log(foo); // will output ["a", "b", 3, 4]
Javascript的Array.push()方法将推送项,而不是扩展数组

var array1 = [1, 2, 3, 4];
var array2 = ['a', 'b'];
array1.push.apply(array1, array2);
console.log(foo); // will output [1, 2, 3, 4, "a", "b"]
extend()方法将扩展数组/对象,而不是推送项

var array1 = [1, 2, 3, 4];
var array2 = ['a', 'b'];
angular.extend(array1, array2);
console.log(foo); // will output ["a", "b", 3, 4]
Javascript的Array.push()方法将推送项,而不是扩展数组

var array1 = [1, 2, 3, 4];
var array2 = ['a', 'b'];
array1.push.apply(array1, array2);
console.log(foo); // will output [1, 2, 3, 4, "a", "b"]
extend()方法将扩展数组/对象,而不是推送项

var array1 = [1, 2, 3, 4];
var array2 = ['a', 'b'];
angular.extend(array1, array2);
console.log(foo); // will output ["a", "b", 3, 4]

为什么不阅读文档呢。在这里,您将得到确切的答案。我知道angular.extend通过复制src的属性来扩展目标。我的主要问题是,为什么需要在上述代码中创建副本?为什么不能直接将nextMessage作为参数传递呢?angular.extend({},nextMessage)如果要使用具有相同引用的新对象更新当前对象属性,这行代码将非常有用。但是在数组$scope.message.push(nextMessage)的情况下应该可以很好地工作。为什么不阅读文档呢。在这里,您将得到确切的答案。我知道angular.extend通过复制src的属性来扩展目标。我的主要问题是,为什么需要在上述代码中创建副本?为什么不能直接将nextMessage作为参数传递呢?angular.extend({},nextMessage)如果要使用具有相同引用的新对象更新当前对象属性,这行代码将非常有用。但是在数组$scope.message.push(nextMessage)的情况下应该可以很好地工作。为什么不阅读文档呢。在这里,您将得到确切的答案。我知道angular.extend通过复制src的属性来扩展目标。我的主要问题是,为什么需要在上述代码中创建副本?为什么不能直接将nextMessage作为参数传递呢?angular.extend({},nextMessage)如果要使用具有相同引用的新对象更新当前对象属性,这行代码将非常有用。但是在数组$scope.message.push(nextMessage)的情况下应该可以很好地工作。为什么不阅读文档呢。在这里,您将得到确切的答案。我知道angular.extend通过复制src的属性来扩展目标。我的主要问题是,为什么需要在上述代码中创建副本?为什么不能直接将nextMessage作为参数传递呢?angular.extend({},nextMessage)如果要使用具有相同引用的新对象更新当前对象属性,这行代码将非常有用。但是在数组$scope.message.push(nextMessage)的情况下应该可以很好地工作。我的主要问题是,为什么需要在上述代码中创建副本?为什么不能直接将下一条消息作为参数传递?@DeepArora可能是因为。。。当有人因为逻辑原因操纵数组中的对象时,原始对象可能不会被修改。我知道angular.extend通过复制src的属性来扩展目标。我的主要问题是,为什么需要在上述代码中创建副本?为什么不能直接将下一条消息作为参数传递?@DeepArora可能是因为。。。当有人因为逻辑原因操纵数组中的对象时,原始对象可能不会被修改。我知道angular.extend通过复制src的属性来扩展目标。我的主要问题是,为什么需要在上述代码中创建副本?为什么不能直接将下一条消息作为参数传递?@DeepArora可能是因为。。。当有人因为逻辑原因操纵数组中的对象时,原始对象可能不会被修改。我知道angular.extend通过复制src的属性来扩展目标。我的主要问题是,为什么需要在上述代码中创建副本?为什么不能就这么做呢