module.exports传递问题(突然发现的问题到现在还没找到原因,求解!)
分装了一个Obj对象(User.js)
User = function(){
var pri = {
id : null,
name : null
}
var pub = {
setId : function(id){
pri.id = id;
},
getId : function(){
return pri.id;
},
setName : function(name){
pri.name = name;
},
getName : function(){
return pri.name;
}
toData : function(){
return pri;
}
}
return pub;
}
module.exports = User;
\n```
### 外部引用这个Obj(UserT.js)
** 在这里直接require引用进来就ok了,
不需要使用定义var User = require("../modules/User");
var user = new User();
而是可以直接使用对象。why?
**
```js\n
require("../modules/User");
UserT = (function(){
var user = new User();
function UserT(){
}
UserT.prototype.init = function(){
user.setName("Michael");
}
UserT.prototype.getName = function(){
console.log("message");
}
});
module.exports = UserT;
\n```
### 比较奇怪的是下面的问题(Test.js)
**
在这边可以无需引用User就可以直接得到User对象???
Why?
**
```js\n
require("./UserT");
console.log(UserT);
console.log(User);
\n```
5 回复
单require = 直接插入。
User.js定义的User函数没有var
// 由于var 被你吃了,所以User被定义到了global上
User = function(){.....}
// 这一行去掉也不会影响你的结果
// module.exports = User;
我去,换markdown引擎了??原来的```
哪去了?换成什么了
111
@alsotang 预览的时候```
没有效果
123
@zxc122333 嗯嗯,预览的时候没有。换了markdown编辑器。
全局惹的祸