因为express库使用时是
var express = require('express')
var app = express()
var router = express.Router()
所以express这部分源码应该是(我在github上没搜到源码..)
module.exports = function express(){
...
}
module.exports.Router = function Router(){
...
}
module.exports的源码中我记得是
module.exports = {}
module.exports是初始化为一个{}空对象,那是怎么它被一个function赋值呢?
↓
是相当于把exports重新指向一个function对象么?
↓
那么已经指向了function对象是怎么再给这个function对象添加一个Router属性呢?
看到评论里面有大佬回复说可以,我去测试了一下,的确可以!
好像也对,毕竟js是一切皆object,应该是可以的。
所以现在想问:是怎么给一个function对象添加属性?如果要写,是写成什么样的形式呢?比如:
var c = {
function(){},
}(我蒙的)
你的猜测很正确,源码的确是这样的。
这样就实现了,给函数设置Router属性,附源码地址,望采纳