javascript - 防止 'global' 在 javascript 中的引用

标签 javascript

我遇到了代码变量名称相互冲突的问题,即;

<script type="text/javascript">var a = "hello"; </script>
<script type="text/javascript">alert(a);//this works, when I want 'a' not to exist </script>

关闭是唯一的选择吗?

来自c#背景,就像构造一个未引用的委托(delegate)实例,然后调用它内联,这看起来有点乱

(function(){var a = "hello";})();
(function(){alert(a);})();//yes! working as expected

最佳答案

使用(立即自执行的)函数来创建新范围确实是可行的方法。

这还有一个好处,就是可以确保某些变量具有某些值。使用 jQuery 时,以下是常见的示例:

(function($, window, undefined) {
    // ...
})(jQuery, this);

除非你有大量的函数,每个函数只有一个语句(就像你的例子一样),否则它也是完全可读的。

关于javascript - 防止 'global' 在 javascript 中的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10999070/

相关文章:

javascript - 逐步在 localStorage 中存储和加载输入数据

javascript - 根据其中一个键的条件,从数组中获取单个对象

javascript - 为跨域请求覆盖 ​​XMLHttpRequest

javascript - 防止表单 POST 被后退按钮取消

javascript - jQuery 事件未触发。

javascript - 在 JavaScript 按钮上应用某些 .class 并避免文本未对齐

javascript - 如何获取未包含在任何html标签中的innertext

javascript - 使用 jquery 覆盖选择列表表单值

javascript - 多次触发全局混合 - Vue

javascript - 合并 PHP 文件和页面 - Wordpress