对象显示意外结果

时间:2015-07-18 11:52:48

标签: javascript

我写了这段代码

var myObj={
    a:'kaka',
    b:'beck'
};


var finalname=myObj[b]);
console.log(finalname);

代码在控制台中没有显示任何内容。 请帮忙。 感谢。

4 个答案:

答案 0 :(得分:4)

使用myObj.b代替myObj["b"]

var myObj = {
   a: 'kaka',
   b: 'beck'
};


var finalName = myObj.b;
console.log(finalName);

如果您打算使用方括号表示法,那么键应该是一个字符串。

var myObj = {
       'a': 'kaka',
       'b': 'beck'
    };


    var finalName = myObj['b'];
    console.log(finalName);

答案 1 :(得分:1)

在致电时,您是不是首先得到错误:

var finalname=myObj[b]);

应该是:

var finalname=myObj["b"];

没有“”和内部引号“”

OR

var finalname=myObj.b;

答案 2 :(得分:1)

b需要是字符串或变量

var myObj={
    a:'kaka',
    b:'beck'
};


var finalname=myObj['b'];
console.log(finalname);

答案 3 :(得分:0)



var myObject = {...};

myObject.attr; // try to get an attribute named as attr,

myObject["attr"]; // try to get an attribute named as attr,

myObject[attr]; // try to get an attribute named as the value of attr.

/*

conclusion:
any thing appeared in square bracket is considered as an expression,
the owner object try to find  the attribute named as the expression's value.
otherwise, square bracket is more powerfull:
  
  myObject["a-b"]
  myObject["1"]
  myObject["a b"]
  ...
  myObject["anything"]
  
  while:
  
  myObject.a-b // the value of myObject's attribute a minus the value of b
  myObject.1 // grammatical mistake
  myObject.a b // grammatical mistake

*/