JavaScript 静态变量

标签 javascript

除了可读性之外,还有什么理由避免或不使用这种风格对静态变量进行编程?

function not_global()
{
    var print;

    (function() {
        var static = value;
        print = function(value) {
            static = value;
        }
    })();
}

最佳答案

我会避免这种风格。它不是很明确,因此如果没有注释就很难判断 print 暴露在 IIFE 之外是故意的。相反,我建议从函数返回 print 并将其分配给那里:

var print = (function()
{
    var text_log=document.getElementById('text_log_text');

    return function(string)
    {
        text_log.innerHTML+='<br />'+string;
    };
})();

请注意,不鼓励污染全局命名空间,因此实际上最好的答案是不要将 print 暴露在外部。这个答案假设您已经考虑过这一点,并且您的 IIFE 实际上嵌套在另一个函数中(因此它不会污染全局命名空间),或者您确实希望 print 是全局的。

关于JavaScript 静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21470269/

相关文章:

javascript - 如何将阴影 Angular 和深度转换为 HTML5 canvas shadowOffset 表示

javascript - 使用 JavaScript 动态加载 CSS 文件

javascript - Bootstrap datetimepicker 动态改变格式

javascript - 写入文本或 JSON 文件以与 Node react

当 html 在 JSON 数据包中传递时,Javascript 错误

javascript - 如何用javascript检测err_name_not_resolved?

javascript - JavaScript 的尾递归优化?

javascript - 检查 json Javascript/Jquery 中是否存在数组

javascript - nodejs/express 包含本地js文件

javascript - 通过 Selenium Webdriver(JS 绑定(bind))以编程方式与 Firefox 开发人员工具交互