Javascript 对象文字表示法的意外行为
Unexpected behavior with Javascript object literal notation
我一直在尝试使用Javascript对象文字符号与原型函数,并遇到了一个我无法弄清楚的错误。
以下是相关代码:
var MyTestObj = {
myTestFunction: function() {
var myArray = []
console.log('Before:');
console.log(myArray);
console.log(myArray.length);
console.log('---');
for (var mi = 0; mi < 5; mi++) {
myArray.push(1);
}
return myArray;
}
}
当我调用console.log(myArray)时,我希望它输出[],但我得到的是:
> MyTestObj.myTestFunction()
Before:
[1, 1, 1, 1, 1]
0
---
[1, 1, 1, 1, 1]
有人可以解释为什么 myArray 在循环之前输出它时已经有一个值吗?为什么它会立即输出正确的长度 (0)?
感谢您的帮助。
这是
Chrome和Safari控制台的一个怪癖。它不会立即评估数组以进行显示。
如果您.slice()
它,它将正确显示,因为数组只有基元。
console.log('Before:');
console.log(myArray.slice()); // <-- copy the Array
console.log(myArray.length);
console.log('---');
相关文章:
- 使用带有自定义对象作为属性的jQuery.extend时出现意外行为
- 未捕获的语法错误:javascript对象上出现意外的标记ILLEGAL
- 意外结果,在 ASP.Net 中解析 JSON 对象的数组
- 使用 JSON.parse 将字符串(变量)转换为对象,错误意外标记
- 错误:'这'对象不正确;在JQuery中单击事件-单击时的意外行为
- 为什么JSON.parse()在尝试解析一个简单的JSON对象时抛出Uncaught SyntaxError:意外的令牌
- 如何访问以数字开头的对象属性(语法错误:意外的标识符)
- ng单击错误:[$parse:syntax]语法错误:令牌'对象'意外,应为[]
- 试图解析一个大型JSON对象并提取数据,但不断出现意外的令牌错误
- JS对象属性被意外重写
- JavaScript 或 Node.js意外地对对象进行排序
- 两级数组中的对象.导致意外令牌 [.
- 咖啡脚本:当我尝试创建对象文字的对象文字时,意外的“{”
- 语法错误:JSON 分析错误:意外的标识符“对象”
- 将变量打印到控制台时出现意外字符串:[对象窗口]
- 意外的 Javascript Date 对象隐式转换
- 跨 ajax 请求到服务器返回的 json 对象显示错误意外令牌:
- Webpack require 方法返回意外的对象
- 从文本文件加载 Json 对象 - 返回未捕获的语法错误:意外标记“[ ”
- 使用 jQuery 的 JavaScript 意外对象行为