最近看別人的代碼,發現他們在從localStorage里面的時候喜歡用dot來操作,而不是get setItem,記得以前說過這個事。下面再說一次吧。
用dot方式來操作( 每次以'hello'=>'world','zhangsan'=>'lisi'來做為例子 )
設值
localStorage.hello = 'world';
localStorage.zhangsan = 'lisi'; 取值: var value_of_hello_in_localStorage = localStorage.hello; var value_of_zhangsan_in_localStorage = localStorage.zhangsan
用getItem setItem來操作
設值: localStorage.setItem("hello", "world"); localStorage.setItem("zhangsan", "lisi"); 取值: localStorage.getItem("hello"); localStorage.getItem("zhangsan");
這兩種方法的效率我不清楚,但是為什么推薦使用get setItem呢?
1.容易控制,便於動態綁定,尤其在函數抽離和重構中。比如我要存一個復雜類型,每次存的時候都需要做JSON.stringify(object_a),所以我把它抽成函數
//用dot方式來實現設值:
function storage_object(object) { localStorage.object = JSON.stringify(object); } //用getItem方式來實現: function storage_object (object) { localStorage.setItem(object,JSON.stringify(object)); }
這時候就會明顯的發現用dot的方式是很不合適的。因為他不能實現動態的綁定key。
2.感覺用getItem更美觀,容易讀懂。這個是個人意見。我記得我看過一段代碼,作用大概是實現計數吧:
locatStorage.count++
我看見他的時候, 當時就蒙圈了。確實挺簡單的,但是不容易懂啊。這是在考驗我啊。
大概就是這樣。