Javascript对象是一个函数
我想从另一个JS文件在新的JS文件中创建一个对象。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
我在新文件中得到以下错误,
对象不是函数
:
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});
这是因为您的模块不导出构造函数。默认情况下,导出的对象不能用作构造函数。