Javascript对象是一个函数

Javascript对象是一个函数,javascript,node.js,oop,object,Javascript,Node.js,Oop,Object,我想从另一个JS文件在新的JS文件中创建一个对象。 我在新文件中得到以下错误,对象不是函数: var Bricklet = require('../Bricklet'); var b = new Bricklet("afea", "sdafdf", "affe"); console.log(b); 当我尝试在JS文件中创建对象时,它会工作。 代码如下: var Bricklet = (function () { function Bricklet(uid, deviceIdentifi

我想从另一个JS文件在新的JS文件中创建一个对象。
我在新文件中得到以下错误,
对象不是函数

var Bricklet = require('../Bricklet');
var b = new Bricklet("afea", "sdafdf", "affe");
console.log(b);
当我尝试在JS文件中创建对象时,它会工作。
代码如下:

var Bricklet = (function () {
    function Bricklet(uid, deviceIdentifier, connectedUid) {
        this._uid = uid;
        this._deviceIdentifier = deviceIdentifier;
        this._connectedUid = connectedUid;
    }
    return Bricklet;
})();

var bricklet = new Bricklet("afea", "sdafdf", "affe");
console.log(bricklet);

为什么会出现此错误?

您必须导出Bricklet函数:

var Bricklet = (function () {
    function Bricklet(uid, deviceIdentifier, connectedUid) {
        this._uid = uid;
        this._deviceIdentifier = deviceIdentifier;
        this._connectedUid = connectedUid;
    }
    return Bricklet;
})();

var bricklet = new Bricklet("afea", "sdafdf", "affe");
console.log(bricklet);

module.exports = Bricklet; // <<------- Add this
var Bricklet=(函数(){
功能块(uid、设备标识符、connectedUid){
这个;
这是.\u deviceIdentifier=deviceIdentifier;
这。_connectedUid=connectedUid;
}
回炉砖;
})();
var bricklet=新bricklet(“afea”、“sdafdf”、“AFF”);
控制台日志(砖块);

module.exports=Bricklet;//你们的出口产品是什么样子的?我猜错误出现在第2行(
newbricklet(…)
),您能确认吗?您不能在其他JavaScript文件中导入JavaScript文件。如果这是一个Node.js问题,请将其标记为Node.js,因为这在普通JavaScript中不起作用。您需要导出
Bricklet
如:
module.exports=Bricklet
。这取决于您使用的环境(浏览器中的NodeJS、AMD等),但您没有导出
Bricklet
,例如
define(“Bricklet”),function({/*…*/return Bricklet});
这是因为您的模块不导出构造函数。默认情况下,导出的对象不能用作构造函数。