gpt4 book ai didi

javascript - 导出类结果为 "TypeError: ... is not a function"

转载 作者:行者123 更新时间:2023-12-02 17:48:02 25 4
gpt4 key购买 nike

我有一个node.js应用程序,其中有一个class.js模块,其中

var MyClass = module.exports.MyClass = function MyClass(){}

Object.defineProperty(MyClass, 'MyArray', ['value1','value2']);

MyClass.prototype.MyFunction = function(){
//---
}

然后我在我的主app.jsrequire

var MyClass = require('./class.js');

var myInstance = new MyClass(); // TypeError: object is not a function

但是当我尝试使用 new 实例化它时,它会抛出该错误。我在这里做错了什么?我已经尝试了很多改变,但没有任何效果,但我确实知道它(或接近它的东西)曾经起作用..

最佳答案

var MyClass = require('./class.js').MyClass;

您必须将您在 exports 对象上设置的 MyClass 成员分配给 MyClass。否则,您将使用 require 返回的模块实例调用 new

否则你可以像这样导出:

var MyClass = module.exports = exports = function MyClass(){}

并保持您的 require 语句不变。在这种情况下,您将从模块中导出一个且一个函数。 (从技术上讲,您不需要在上面的行中分配给 exports 。但是,如果您不这样做,则 module.exports 的 exports ceases to be an alias 。我更喜欢让它们保持同步。)

关于javascript - 导出类结果为 "TypeError: ... is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21604397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com