在 fiddle 中 - http://jsfiddle.net/vwwkf18c/或以下代码片段 -
var a = [3, 4];
var b = [6, 2];
var c = $.extend({}, a, b);
alert(c[1]); //alerts 2
alert(a); //alerts array a contents
alert(c); //does not return contents of c
我的问题 - 1) alert后,我们可以推断“c”是一个对象而不是数组对象。请确认。 2)其次据说数组的内部表示是对象文字,对吗? 这意味着数组“a”将按以下方式存储 -
var a = {
0: 3,
1: 4
}
是吗? 3) a 或 b 是如何在内部存储的,它与“c”的内部表示有何不同?
最佳答案
- 参见 the docs : "返回:对象"
- 没有。对象字面量是用于创建对象的一段 JavaScript 语法。数组是一种对象类型,它(沿原型(prototype)链)继承自基本对象。 Array 类型具有与基本 Object 不同的
toString
方法,这就是alert
给出不同结果的原因。 - 这是特定于实现的(并且对于任何编写 JavaScript 而不是 JavaScript 运行时的人来说也不重要)
关于Javascript - 数组如何在内部存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27867658/