最近看别人的代码,发现他们在从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++
我看见他的时候, 当时就蒙圈了。确实挺简单的,但是不容易懂啊。这是在考验我啊。
大概就是这样。