node.js 变量声明问题

同样的一份代码

TopClient = require('../../lib/taobao-sdk/api/topClient').TopClient;

如果用node命令直接运行没问题不会报错,但是在项目中运行会出现下面错误
图片描述

如果写成

var TopClient = require('../../lib/taobao-sdk/api/topClient').TopClient;

则没有问题,另外我项目中引用babel,该问题是否由babel造成,望高手解答,谢谢!


补充一下,不是我主观想采用这种写法,是taobao的api sdk文件采用的这样的写法。十分尴尬。

阅读 1.8k
1 个回答

我猜测因为你用了babel,而babel用了严格模式。错误说的是=号左边的TopClient未定义,但讲道理如果不是严格模式=号左边的TopClient在解析时回向上查找TopClient,如果到全局作用域还没有会创建一个。不过问题来了,为什么要用代码1不声明TopClient用代码2?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题