请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

对 babel-runtime 解决污染全局变量的疑问

按老师视频举的例子来说,通过 babel-runtime 处理 promise 会生成如下代码:

// index.js
var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));

_promise["default"].resolve(100).then(function (data) {
  return data;
});

从生成代码来看是引入了一个 _promise 对象,那这个 var 声明的 _promise 对象默认不是会挂载到 window 对象上吗?这样做不也是污染了全局变量吗?

个人理解:因为 index.js 文件最终会生成一个闭包函数,_promise 只在这个闭包函数作用域内,所以不会影响到 window 对象。

希望老师解答下

正在回答 回答被采纳积分+3

1回答

双越 2021-09-27 08:04:39

只要不重新赋值 window.Promise ,就不会污染 —— 这是关键。

0 回复 有任何疑惑可以回复我~
  • 提问者 Nemoya #1
    老师,你说的这个让我感觉污染全局变量是用户的行为了😂
    回复 有任何疑惑可以回复我~ 2021-09-27 11:47:56
  • 双越 回复 提问者 Nemoya #2
    不是啊。如果你开发了一个第三方的 js 工具,用户使用时污染了全局 API ,这就是你的“责任”
    回复 有任何疑惑可以回复我~ 2021-09-27 15:50:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信