[英]Why cant I push inside an array and use it in a function argument in javascript?
為什么b和c在下面的代碼中不相同? 第2行中的語句執行順序是什么?
var a = [1,2];
var b = new Array(a.push(1)); //[undefined, undefined, undefined]
var c = new Array(a); // [[1, 2, 1]]
.push()
函數返回數組的新長度,而不是數組本身。 因此, b
被初始化為3個元素的空數組,因為.push()
返回3(在將1
加到數組a
的末尾之后)。
您還可以使用slice
函數克隆數組,以替代構造函數。 如果你想用這種方式a
保持不變。
var a = [1,2];
var b = a.slice();
b.push(1); // [[1, 2, 1]]
var c = b.slice(); // [[1, 2, 1]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.