gpt4 book ai didi

node.js - 模块.exports : is not a constructor error

转载 作者:搜寻专家 更新时间:2023-11-01 00:27:43 24 4
gpt4 key购买 nike

有人可以解释为什么第一次导出抛出 is not a constructor 错误,而第二次导出有效吗?

// Throws a `is not a constructor` error
module.exports = {
Person: function () {
constructor()
{
this.firstname;
this.lastname;
}
}
}

// Works
class Person {
constructor()
{
this.firstname = '';
this.lastname = '';
}
}
module.exports = Person;

// Usage:
const Person = require("person");
let person = new Person();

最佳答案

因为第一次实际导出包含属性的对象时:

  module.exports = { /*...*/ };

而且您无法构造该对象。但是,您可以获得 Person 属性并构造它:

 const Person = require("person").Person;
new Person();

您还可以解构导入的对象:

 const { Person } = require("person");
new Person();

...但这只有在导出其他内容时才有意义,否则我会选择 v2。

关于node.js - 模块.exports : is not a constructor error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53105744/

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