bla*_*ife 2 javascript local-storage
可能的重复:
JavaScript 属性访问:点符号与括号?
我是 chrome 扩展的新手。我知道 Java,但 Javascript 是完全不同的东西。
我想问一下localStorage["something"]和 和有localStorage.something什么不一样?
方括号与点。
没有区别。实际上,JavaScript 中的两种语法从整体上看并没有什么区别:
someObj.someProp === somObj["someProp"];
Run Code Online (Sandbox Code Playgroud)
唯一的区别是某些字符在字符串中有效,而在点属性名称中无效:
someObj["some-prop"] // valid
someObj.some-prop // this is actually the value of `someObj.some` minus the value of `prop`
Run Code Online (Sandbox Code Playgroud)
请注意,这两种存储值的localStorage方法也与使用.getItem和.setItem方法相同。根据W3C 规范:
每个 Storage 对象都提供对键/值对列表的访问,这些键/值对有时称为items。
这些项目可以通过同名的对象属性访问和可变,或者通过使用.getItem和通过名称引用它们.setItem。唯一的区别是这些函数可以被覆盖以提供包装,例如,在存储之前对对象进行 JSON 化:
localStorage.setItem = function(key, val) {
localStorage[key] = JSON.stringify(val);
}
Run Code Online (Sandbox Code Playgroud)