search

Home  >  Q&A  >  body text

javascript - coffeescript中,如何运用全局变量?

注意到一个变量的出现总被解析成var
那我应该怎样使用全局变量?

巴扎黑巴扎黑2896 days ago458

reply all(4)I'll reply

  • 怪我咯

    怪我咯2017-04-10 13:13:26

    coffeescript并非都应用与web开发,所以直接利用winodw来定义全局变量并非一个好的解决方案。
    coffee提供了@或者this来表示当前作用域,所以可以利用它来提供全局变量的支持。代码如下:

    global = this
    func1 = ->
        global.a = 1
    func1()
    func2 = ->
        console.log global.a
    func2()    #1
    

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 13:13:26

    全局变量以root.attr的形式定义。

    其中,root为:

    root = global ? window
    

    这样可以同时兼容Node和浏览器环境

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-10 13:13:26

    这不是一个好实践。

    window.global = 'global'
    
    func = ()->
        window.global = 'changed'
    

    reply
    0
  • 迷茫

    迷茫2017-04-10 13:13:26

    首先题目应该改为JavaScript中如何运用全局变量。

    下面是定义全局变量'foo'的例子:

    (function(win){
        win.foo = 'imAglobalVar';
    })(window)
    

    reply
    0
  • Cancelreply