:window.localStorage和localStorage有什么区别吗?

时间:2012-09-30 09:12:28

标签: javascript local-storage

我一直在做以下事情:

var store = window.localStorage;
store.setItem()

但现在我看到代码这样做了:

localStorage.setItem()

两者都做同样的事情吗?

5 个答案:

答案 0 :(得分:19)

除非您在自定义范围内声明了名为localStorage的变量,否则它们是相同的。 localStorage是指window.localStorage。事实上,全局命名空间中的每个变量都可以作为window.<variableName>

进行访问

例如:

<script>
function foo() {
    // here window.localStorage == localStorage
}
function foo2 {
    var localStorage = 10;
    // here window.localStorage != localStorage 
    // since you have a local variable named localStorage
}
</script>

答案 1 :(得分:3)

“window”是Javascript中的全局对象,因此如果没有冲突的可能性,可以省略它

答案 2 :(得分:0)

window.localStorage和localStorage之间没有区别Window是全局对象

该窗口是默认前缀

但正确的是window.localStorage,因为localStorage属性是window对象的一部分。

答案 3 :(得分:0)

据说,window.localStorage使得找到localStorage比仅写localStorage更快。

在变量上存储对它的引用会使它更快。

无论如何,这些改进在现代浏览器中可以忽略不计。只有在表现成为一个问题时才会变得有用。
无论如何,你可以了解为什么会这样做。

答案 4 :(得分:0)

这是旧的,但是今天我可能发现了一个不同之处。

我有一个React应用程序,当我在不带WI DOW的SSL上在服务器上运行它时,该应用程序“忘记了” localstorage值。没有SSL,它工作正常。

我回过头并将WINDOW添加到所有对localstorage的引用中,问题消失了