CNode

var app = exports = module.exports = {};是什么鬼?

问答
Ddlyt发布于9 年前最后回复9 年前4 回复3623 浏览0 收藏

在看express的源码,有个问题不理解。

var app = exports = module.exports = {};
app.init = function init() {
  this.cache = {};
  this.engines = {};
  this.settings = {};

  this.defaultConfiguration();
};
console.log(module)
// Module { exports: { init: [Function: init] } }

init是怎么跑到module.exports里面的?

查看回复

回复 (4)

5
515924628#1·9 年前

app和module.exports 指向了同一个对象,所以修改app对象就是修改module.exports对象

I
im-here#2·9 年前

等同于 var age1 = age2 = age3 = 18;

C
cctv1005s#3·9 年前

这三个变量共享了同一片内存区域(指向同一片内存区域),所以改变任意一个,都能使其它两个改变。除非某一个变量指向了另外一片内存。

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