我一直在做以下事情:
var store = window.localStorage;
store.setItem()
但现在我看到这样做的代码:
localStorage.setItem()
两者都做同样的事情吗?
我一直在做以下事情:
var store = window.localStorage;
store.setItem()
但现在我看到这样做的代码:
localStorage.setItem()
两者都做同样的事情吗?
除非您声明了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>
"window" 是 Javascript 中的全局对象,所以如果没有发生冲突的机会,你可以省略它
window.localStorage 和 localStorage 没有区别,Window
都是全局对象
窗口是默认前缀
但正确的是window.localStorage
因为 localStorage 属性是窗口对象的一部分。
这是旧的,但今天我可能发现了不同之处。
我有一个 React 应用程序,当我在没有 WI DOW 的情况下使用 SSL 在服务器上运行它时“忘记”了 localstorage 值。没有 SSL,它工作正常。
我回去并将WINDOW添加到对localstorage的所有引用中,问题就消失了
据称,window.localStorage 使查找 localStorage 比编写 localStorage 更快。
将对它的引用存储在变量上可以使其更快。
无论如何,这些改进在现代浏览器上可以忽略不计。只有在性能成为问题时它才会变得有用。
无论如何,您可能会了解为什么要这样做。