时间:2010-07-23 16:46:11

标签: javascript

2 个答案:

答案 0 :(得分:5)

答案 1 :(得分:0)

虽然'谢尔盖伊林斯基'可能已经考虑过了正确的理由,但还有更多的事情可以考虑。通常是错误的,很难调试。

有时会发生这种情况,你的对象键包含空格,比如说:

var myObj = new Object();

myObj['key1'] = 'val1';
myObj['key2'] = 'val2';
myObj['key3 '] = 'val3';  //the key contains spaces here
myObj['key4 '] = 'val4';  // the key contains spaces here

因此,当您通过console.log(myObj)将其记录到控制台时,您将获得:

Object { key1="val1", key2="val2", key3 ="val3",  key4 ="val4"}

但是当你访问:

alert(myObj.key1); //Ok: val1  
alert(myObj.key2); //Ok: val2  

alert(myObj.key3); //undefined  
alert(myObj.key4); //undefined  

alert(myObj['key3']; //undefined  
alert(myObj['key4']; //undefined  

这些是错误的常见区域,其中一个错误地放置空间,可能是在进行复制粘贴时,就会发生这种情况,有人说,console log能够显示它,但我无法访问它