美文网首页
小程序:作用域问题

小程序:作用域问题

作者: 天幕下悠悠 | 来源:发表于2019-01-15 19:07 被阅读0次

    作用域
    同浏览器中运行的脚本文件有所不同,小程序的脚本的作用域同 NodeJS 更为相似。

    在文件中声明的变量和函数只在该文件中有效,不同的文件中可以声明相同名字的变量和函数,不会互相影响
    当需要使用全局变量的时,通过使用全局函数 getApp() 获取全局的实例,并设置相关属性值,来达到设置全局变量的目的

    在脚本 a.js 中设置全局变量

    // a.js
    // 获取全局变量
    var global = getApp()
    global.globalValue = 'globalValue'
    

    在脚本 b.js 中访问 a.js 定义的全局变量

    // b.js
    // 访问全局变量
    var global = getApp()
    console.log(global.globalValue) // 输出 globalValue
    

    需要注意的是,上述示例只有在 a.js 比 b.js 先执行才有效,当需要保证全局的数据可以在任何文件中安全的被使用到,那么可以在 App() 中进行设置

    定义全局变量

    // app.js
    App({
      globalData: 1
    })
    

    获取以及修改 global 变量的方法

    // a.js
    // 局部变量
    var localValue = 'a'
    
    // 获取 global 变量
    var app = getApp()
    
    // 修改 global 变量
    app.globalData++  // 执行后 globalData 数值为 2
    

    获取 global 变量

    // b.js
    // 定义另外的局部变量,并不会影响 a.js 中文件变量
    var localValue = 'b'
    
    // 如果先执行了 a.js 这里的输出应该是 2
    console.log(getApp().globalData)
    

    相关文章

      网友评论

          本文标题:小程序:作用域问题

          本文链接:https://www.haomeiwen.com/subject/haxudqtx.html