<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var a = ['a','b'];
var b = ['c','d'];
var c = a.concat(b).push('e');
document.getElementById("demo").innerHTML = c;
</script>
</body>
</html>
这将导致数字&#39; 5&#39;而不是[&#39; a&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39; 39; d&#39;&#39; E&#39]
答案 0 :(得分:1)
根据定义,push()方法返回调用该方法的对象的新length
属性。
方法所针对的对象的新长度属性 调用。
下面,
a.concat(b) //returns an `array`. But wait, the statement still has a method chained,
//and to be evaluated.
(returned array).push('e'); // the chained push() is invoked on the returned array.
反过来返回新形成的数组的length
。
所以语句的最终返回值是数组的length
,它存储在c
变量中。
要通过array
操作捕获返回的concat()
,您可以修改代码以将链式方法分解为多个语句,如下所示:
var c = a.concat(b);
c.push('e');
console.log(c) // prints the array content.