我是js的新手。 我在Array Object中重新定义了push()方法,如下所示..
Array.prototype.push = function(item) {
this[this.length] = '[' + item + ']';
return this;
};
var arr = new Array();
arr.push('my');
console.debug(arr);
console.debug(arr[0]);
arr.push('name');
console.debug(arr);
console.debug(arr[1]);
arr.push('is');
console.debug(arr);
console.debug(arr[2]);
// output
[] --> <1>
[my]
[] --> <2>
[name]
[] --> <3>
[is]
但我无法理解为什么&lt; 1&gt;,&lt; 2&gt;,&lt; 3&gt;是空的。
答案 0 :(得分:1)
答案 1 :(得分:1)
尝试使用console.debug(arr.join(','));
代替console.debug(arr);
。
与this jsfiddle一样。
现在输出
[my]
[my]
[my],[name]
[name]
[my],[name],[is]
[is]
在Chrome上测试。
至于debug.console()
打印数组时的奇怪行为,我怀疑它在构建输出字符串时也在数组上使用了push()。例如,如果您将'['+item+']'
替换为'<<'+item+'>>'
,则会在Firebug控制台中遇到一些问题,例如this jsfiddle。