javascript对象表达式表示法无法正常工作

时间:2017-10-20 17:25:59

标签: javascript object

我是javascript语言的新手。格式是在网上给出的,我试过但它给出了未定义的结果。

var name = {
  a : 'a',
  b:'b',c:'c'
};
console.log(name.a);// undefined
console.log(name);// '[object object]'

输出未定义?为什么

2 个答案:

答案 0 :(得分:6)

您与window.name发生冲突。如果在全局上下文中使用name,则会对值进行字符串化。解决方案是仅在函数上下文中使用变量,或者在全局范围之外的任何位置使用变量:

var f = function(){
  var name = {
    a : "a",
    b : "b",
    c : "c"
  };
  console.log(name.a);
  console.log(name);
}

f();

答案 1 :(得分:3)

name是javascript中的reserved predefined word

引用:

  

您最好避免使用以下标识符作为JavaScript的名称   变量。这些是依赖于实现的预定义名称   JavaScript对象,方法或属性(可以说,有些应该   保留字):