CNode

var User = module.exports; 跟 module.exports = User; 区别??

Hhexie发布于13 年前最后回复13 年前13 回复7558 浏览0 收藏

前者是 module.exports 的代替变量? 后者 是 到处User 变量?

查看回复

回复 (13)

L
leapon#1·13 年前

module.exports = User;

User = ?

H
hexie#2·13 年前

var User = function(){ }

module.exports = User;

L
leapon#3·13 年前

这个正确:

var User = function(){
}

module.exports = User;

这个不全:

var User = module.exports;

module.exports 赋过值了吗?
M
meteormatt#4·13 年前

我觉得这2个好像是一样的.

A
a272121742#6·13 年前

module.exports等价于this

因此这两段就是var User = thisthis = User了。

A
a272121742#8·13 年前
引用 a272121742module.exports等价于this。 因此这两段就是var User = this和this = User了。

@Jackson 事实证明this就是指向module.exports╮(╯_╰)╭

F
firstgeniusboy#10·13 年前

这叫什么代码?哪有这么写的? 模块的 var 变量就是这个模块的全局变量。整个程序的运行期间都会存在。 exports 跟 module.exports 是模块的输出。 并且exports 是module.exports 的别名。假如同时对他们两个赋值,module.exports 会覆盖 exports 的变量。

D
dengqiao#11·13 年前

一个是获取exports变量的引用值,一个是对exports变量赋值,注意这跟this没有任何关闭,纯粹就是简单的赋值操作

J
JacksonTian#13·13 年前
引用 a272121742module.exports等价于this。 因此这两段就是var User = this和this = User了。

@imzshh 这个代码的原理肯定就是这样的。但是this是this不要混为一谈。。模块规范里,从来就没有this的说法。

参与回复
登录后即可参与回复。登录