Kur*_*den 2 node.js ecmascript-6
有人可以解释为什么第一次导出会引发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();
Run Code Online (Sandbox Code Playgroud)
因为您是第一次实际导出包含属性的对象,所以:
module.exports = { /*...*/ };
Run Code Online (Sandbox Code Playgroud)
而且您无法构造该对象。但是,您可以获取Person属性并构造该属性:
const Person = require("person").Person;
new Person();
Run Code Online (Sandbox Code Playgroud)
您还可以解构导入的对象:
const { Person } = require("person");
new Person();
Run Code Online (Sandbox Code Playgroud)
...但这只有在导出了其他内容的情况下才有意义,否则我将使用v2。
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |