为了账号安全,请及时绑定邮箱和手机立即绑定

import过来exports的内容 为什么是undefined

import过来exports的内容 为什么是undefined

浮云间 2018-12-20 18:13:59
a.jsconst typeList = [    {a:1},     {b:2},     {c:3}]exports = {typeList}b.jsimport { typeList } from './a'console.log(typeList) // =====> 显示undefined,为什么?
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

前面几位说的是让你怎么改,但是没告诉为什么,我来解释下。


exports是一个引用变量,它其实是module.exports的一个简写。


如果你对外暴漏变量,你这么写没问题:


exports.something = ref;

但是如果你做了替换:


exports = {...};

你要知道,node内部对外引用的是modle.exports,你改变的只是一个局部引用,而不是真实的引用,这个涉及脚本的对象引用规则,简单来说,大概是这样:


var module = {exports: [1,2,3]};

var exports = module.exports;

console.log(module.exports === exports);


// if you do:

exports = {...};


// but you know...

console.log(module.exports);

所以其实如果你再勤快点,改写成下面这样就OK了:


module.exports = {...};

PS: exports是es5的语法,export是es6的语法,楼上很多人弄混了。


查看完整回答
反对 回复 2019-01-18
  • 1 回答
  • 0 关注
  • 1933 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信