星期一, 3月 05, 2012

[javascript] 物件存取特性


一般有在寫javascript的話,都會知道要取一個如下物件
var obj = { a: '123', b: '456' }
的a值,應該要這麼用:
console.log( obj.a );

但是,其實還有另外一個方法,就是使用類似陣列的動態存取
console.log( obj['a'] );
這是一個很方便的特性,假設你要取的物件屬性是不一定的, 我們假設是一個變數。

這時候,如果不知道可以用動態存取方法的話,你就只能這麼寫:
var attr = 'a';
var value = eval('obj.'+attr);
用eval的話,在效能和安全性的考慮上就可能不是這麼的好。

改變一下作法,若是這麼寫:
var attr = 'a';
var value = obj[attr];
這樣不就簡潔又美觀了呢?

在用json的時候,也可以很方便的這麼用
var value = json['key'] || defaultVal;
是不是很棒呢!

沒有留言:

張貼留言