Javascript window.localStorage和localStorage之间有什么区别吗?

Javascript window.localStorage和localStorage之间有什么区别吗?,javascript,local-storage,Javascript,Local Storage,我一直在做以下工作: var store = window.localStorage; store.setItem() 但现在我看到代码正在这样做: localStorage.setItem() 两者是否都做相同的事情?除非您在自定义定义的作用域中声明了名为localStorage的变量,否则它们是相同的本地存储指的是窗口。本地存储。事实上,全局名称空间中的每个变量都可以作为窗口访问。 例如: <script> function foo() { // here windo

我一直在做以下工作:

var store = window.localStorage;
store.setItem()
但现在我看到代码正在这样做:

localStorage.setItem()

两者是否都做相同的事情?

除非您在自定义定义的作用域中声明了名为
localStorage
的变量,否则它们是相同的<代码>本地存储指的是
窗口。本地存储
。事实上,全局名称空间中的每个变量都可以作为
窗口访问。

例如:

<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>

函数foo(){
//此处window.localStorage==localStorage
}
函数foo2(){
var localStorage=10;
//这里window.localStorage!=localStorage
//因为您有一个名为localStorage的局部变量
}

在Javascript中,“窗口”是全局对象,因此如果没有冲突的机会,您可以对其进行操作在window.localStorage和localStorage之间没有区别
窗口
是全局对象

窗口是默认的前缀


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

假定window.localStorage使localStorage比编写localStorage更快地被找到

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


无论如何,这些改进在现代浏览器上是微不足道的。只有当性能成为一个问题时,它才变得有用。
无论如何,你可能知道为什么会这样做。

这是一个古老的概念,但今天我可能发现了不同之处

我有一个React应用程序,当我在没有WI-DOW的SSL服务器上运行它时,它“忘记”了本地存储值。没有SSL,它工作得很好

我返回并将该窗口添加到对localstorage的所有引用中,问题消失了。

窗口。
是“默认前缀”,因此“WINDOW.x=x”。