萬物皆對象,而對象完全可以用鍵值對來表示,所以,在js中,也是通過鍵值對來表示對象的,在開發中,我在修改的時候,知道屬性值可以直接用點.符號來獲取值,但是寫common.js的時候,發現這個屬性名稱是變化的,也就是這樣就不能通過點來動態獲取了,那么這個怎么獲取呢?
先看下面
var obj = {"name1":"張三","name2":"李四"};
var key = "name1";
var value = obj.key;//得到了"undefined"
value = obj.name1;//得到了"張三"
var key = "name1";
var value = obj.key;//得到了"undefined"
value = obj.name1;//得到了"張三"
其實我是想動態給key賦值,然后得到key為多少所對就的值。但這種做法行不通,obj.key會去找obj下key為"key"所對應的值,結果當然是找不到嘍。
那么既然是鍵值對,那么是不是可以通過
object[key]來獲取這個value呢?然后我就嘗試着用
obj[key];//這樣獲取的就是張三
然后呢,經過查詢,還有另外一種方法來說去屬性值,就是
eval("obj."+key)。
綜上,一共有兩種方法來獲取屬性值
綜上,一共有兩種方法來獲取屬性值
一、var key = "name1";var value = obj[key];
二、var key = "name1";var value = eval("obj."+key);
二、var key = "name1";var value = eval("obj."+key);