【问题标题】:How to modify a global variable inside of a function?如何修改函数内部的全局变量?
【发布时间】:2012-08-04 01:58:08
【问题描述】:
x = 10
function lol(){
    x = 5
}
function rofl(){
    alert(x)
}

rofl() 函数中,我怎样才能使警报弹出号码5?请帮帮我,我现在花了 4 个小时来解决这个问题:S

【问题讨论】:

    标签: javascript variables global local


    【解决方案1】:

    你已经接近了。真的,真的很近。

    唯一的问题是您实际上并没有调用这两个函数。这就是你所缺少的:1

    lol();
    rofl();
    

    工作演示:http://jsfiddle.net/mattball/VsGWe


    1 嗯,还有一些分号。

    【讨论】:

    • Javascript 中不需要分号(google 臭名昭著的 Javascript 分号插入规则),但许多人认为您永远不应该省略分号。
    • "Many" 包括我,如果除了the return gotcha 之外没有其他原因。不喜欢分号?编写 Python 或 CoffeeScript。
    • 当然,你是对的。可选的分号是 JavaScript 的一大缺陷。即使你用分号终止所有语句,返回的陷阱也会让你绊倒。这就是为什么我决定在我的个人项目中删除所有分号并小心不同的陷阱,如 blog.izs.me/post/2353458699 中提到的 ;[1, 2, 3].foreach(f)。对于我与其他人共享的项目,我会随波逐流,并顺从地将分号放在其他人期望的位置。
    【解决方案2】:

    除了调用函数之外,您无需执行任何操作。您已正确设置它们,但如果您不调用它们,则不会发生任何事情。

    x = 10
    lol();
    rofl();
    
    function lol(){
        x = 5
    }
    function rofl(){
        alert(x)
    }
    

    ​Live DEMO

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-08
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 2021-03-12
      相关资源
      最近更新 更多