【问题标题】:Is there any difference between: window.localStorage and localStorage?window.localStorage 和 localStorage 之间有什么区别吗?
【发布时间】:2012-09-21 12:34:17
【问题描述】:

我一直在做以下事情:

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

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

localStorage.setItem()

两者都做同样的事情吗?

【问题讨论】:

  • window. 是“默认前缀”,所以“window.x = x”。

标签: javascript local-storage


【解决方案1】:

除非您在自定义范围内声明了一个名为 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>

【讨论】:

    【解决方案2】:

    "window" 是 Javascript 中的全局对象,所以如果没有冲突的机会可以省略它

    【讨论】:

      【解决方案3】:

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

      窗口是默认前缀

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

      【讨论】:

        【解决方案4】:

        据说window.localStorage比写localStorage更快地找到localStorage。

        将对它的引用存储在变量中会使其更快。

        无论如何,这些改进在现代浏览器上可以忽略不计。只有当性能成为问题时,它才会变得有用。
        无论如何,您可能会知道为什么会这样。

        【讨论】:

          【解决方案5】:

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

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

          我回去将WINDOW添加到所有对localstorage的引用,问题就消失了

          【讨论】:

            猜你喜欢
            • 2013-09-13
            • 2017-04-05
            • 2014-09-18
            • 2015-06-14
            • 2011-05-23
            • 2011-02-15
            • 2011-11-27
            • 2022-01-18
            • 1970-01-01
            相关资源
            最近更新 更多