2015-07-18 3 views

ответ

1

Вы не получаете сообщение об ошибке в первую очередь при вызове:

var finalname=myObj[b]); 

Оно должно быть:

var finalname=myObj["b"]; 

Без ")" и внутри цитирует ""

OR

var finalname=myObj.b; 
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); 
+0

@ Но как использовать квадратную скобку? –

+0

var myObj = { a: 'kaka', b: 'beck' }; var finalname = myObj ['b']; console.log (конечное имя); Вы можете напрямую это сделать. –

1

б нужно быть строкой или переменной

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


var finalname=myObj['b']; 
console.log(finalname); 
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 
 

 
*/

Смежные вопросы