gpt4 book ai didi

javascript - 当源为数组时,angular.copy() 返回对象

转载 作者:行者123 更新时间:2023-11-29 21:16:11 25 4
gpt4 key购买 nike

我想使用 angular.copy() 在日志函数中创建我的 arguments 的副本。

由于 arguments 已经是一个数组,我希望得到一个数组,但它返回的是对象而不是数组。

$scope.log = function(argN) {
console.log("arguments", arguments, angular.copy(arguments));
if (typeof(console) !== 'undefined') {
console.log.apply(console, angular.copy(arguments));
}
}
  1. 这是某种标准的复制做法吗?
  2. 如何获取 Array 而不是 Object?

最佳答案

arguments 不是数组而是类似数组。要对 arguments 进行浅层克隆,请使用 Array.prototype.slice.call(arguments)。这将创建一个包含所有参数的数组。从那里,要获得深度克隆,请使用 angular.copy

var foo = angular.module('foo', []);

foo.controller('bar', function($scope) {
$scope.trace = function() {
var clonedArguments = angular.copy(arguments);
console.log(clonedArguments);
var clonedArgs = angular.copy(Array.prototype.slice.call(arguments));
console.log(clonedArgs);
};
$scope.trace(1, 'foo', { bar: 27 })
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="foo" ng-controller="bar"></div>

关于javascript - 当源为数组时,angular.copy() 返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39354538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com