module.exports传递问题(突然发现的问题到现在还没找到原因,求解!)
发布于 5个月前 作者 zero20121222 312 次浏览 来自 问答

分装了一个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编辑器。

回到顶部