gpt4 book ai didi

javascript - 在 JavaScript 'window' 对象中存储变量是使用该对象的正确方法吗?

转载 作者:IT王子 更新时间:2023-10-29 03:11:07 29 4
gpt4 key购买 nike

(也许)我刚刚通过在 JavaScript window 对象中“存储”/“保存”变量解决了我的问题(How to update front-end content after that a form is successfully submitted from a dialog window?)。但是,由于我是 JavaScript 方面的新手,我怀疑在 JavaScript window 对象中存储/保存变量是否是使用该对象的“常见”/“正确”方式。是吗?

例如使用下面的代码

$('.trigger').click(function() {
window.trigger_link = this;
});

可取吗?

最佳答案

在 JavaScript 中,任何全局变量实际上都是 window 对象的一个​​属性。使用一个等同于(并且可以互换)使用另一个。

使用全局变量当然是“常见的”,所以问题是它是否“合适”。 Generally, global variables are discouraged ,因为它们可以从任何函数访问,并且您有多个函数试图读取和写入相同变量的风险。 (对于任何环境中的任何编程语言都是如此,不仅仅是 JavaScript。)


通过创建 a namespace unique to your application 解决这个问题.最简单的方法是创建一个具有唯一名称的全局对象,并将您的变量作为该对象的属性:

window.MyLib = {}; // global Object container; don't use var
MyLib.value = 1;
MyLib.increment = function() { MyLib.value++; }
MyLib.show = function() { alert(MyLib.value); }

MyLib.value=6;
MyLib.increment();
MyLib.show(); // alerts 7

另一种方法是使用 .data()将变量附加到相关的 DOM 元素。这并非在所有情况下都实用,但这是获取可以全局访问的变量的好方法,而无需将它们留在全局命名空间中。

关于javascript - 在 JavaScript 'window' 对象中存储变量是使用该对象的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12393303/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com