【发布时间】:2015-07-15 03:08:50
【问题描述】:
我想从另一个 JS 文件在一个新的 JS 文件中创建一个对象。
我在新文件中收到以下错误Object is not a function:
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);
为什么会出现这个错误?
【问题讨论】:
-
您的导出是什么样的?我猜错误出现在第 2 行 (
new Bricklet(...)),你能确认一下吗? -
您不能在其他 JavaScript 文件中导入 JavaScript 文件。如果这是一个 Node.js 问题,请将其标记为这样,因为这不适用于纯 JavaScript。
-
你需要导出
Brickletlike:module.exports = Bricklet。 -
这取决于您使用的环境(NodeJS、浏览器中的 AMD 等),但您还没有在任何地方导出
Bricklet,例如define("Bricklet", [], function() { /* ... */ return Bricklet }); -
那是因为你的模块没有export构造函数。默认情况下,导出的对象不能用作构造函数。
标签: javascript node.js oop object