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