收藏
回答

使用this把变量绑定到全局变量有什么弊端?

在封装一些公共方法时,发现在js文件中的this是指向全局,直接像如下代码进行变量绑定,而不是利用module.exports进行模块接口暴露

let U = require('u/u.js');
//绑定到全局变量中
this.U = U;

那么,在app.js文件中,进行加载require('/utils/bootstrap.js');后,U变量就成了全局变量,可以像wx一样使用。

请问这样有什么弊端吗?

最后一次编辑于  2018-09-16  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

6 个回答

  • Eden
    Eden
    2018-09-16

    害我兴高采烈地去试了一下,不行啊老铁。。页面里还是要同getApp()才能拿到

    2018-09-16
    赞同
    回复 5
    • 若丶离
      若丶离
      2018-09-16

      外部创建一个js文件,直接

      let U = {};
       
      this.U = U;

      然后再在app.js中加载创建的文件

      require('/utils/bootstrap.js');

      在其他页面的Page和app.js中都能直接使用;

      实测!你可以尝试在js文件中打印this,会发现是一个Window对象


      你是怎么用的?

      2018-09-16
      赞同
      回复
    • Eden
      Eden
      2018-09-16回复若丶离

      创建


      引入


      报错


      我再也不相信你了。。

      2018-09-16
      赞同
      回复
    • 若丶离
      若丶离
      2018-09-16回复Eden

      。。。。

      把ES6转ES5关了


      2018-09-16
      赞同
      回复
    • Eden
      Eden
      2018-09-16回复若丶离

      我知道弊端了,弊端就是不能用es6。。

      2018-09-16
      赞同
      回复
    • James
      James
      2018-09-18回复Eden

      真的可以这样改吗?我怎么是失败的

      2018-09-18
      赞同
      回复