我对下面的代码有一些疑问:
export class Person {
constructor(obj = { id: 0, name: '', lastName: '', eyeColor: '', age: 0 }) {
this.id = obj.id;
this.name = obj.name;
this.lastName = obj.lastName;
this.eyeColor = obj.eyeColor;
this.age = obj.age;
}
yearOfBirth() {
return new Date().getFullYear() - this.age;
}
json() {
return JSON.stringify(this);
}
}
FWIW:我更喜欢使用以下语法创建对象:
let newPerson = new Person(
{
id: 0,
name: "Werner",
lastName: "Venter",
age: 37
}
);
我真的不喜欢这样:
let newPerson = new Person(0, "Werner", "Venter", 37);
当我有参数名称和值时,它对我来说更容易阅读。无论如何,我离题了......
提前谢谢你们。真的很感谢这个社区。
这是创建对象类的正确/可接受的方法吗?我将使用它从 API 接收数据,该 API 以 JSON 格式发送数据。
是的,您已经创建了一个处理对象的某些属性的类,这样您就必须将一个类传递给构造函数。 (因为你使用了诸如 obj.name 之类的语句)
如何使参数可选?我需要这个的主要原因是在 API 上创建新条目时不需要 ID 值,因此我宁愿在创建对象时不包含 ID 值。
您刚刚通过声明 obj =
let newPerson = new Person(0, "维尔纳", "文特尔", 37);
顺便说一句,这个是错误的,你的构造函数方法除了一个参数之外,而在上面的示例中提供了 4 个参数。
这种方式确实是正确的(但它拖了一个错误,因为没有提供 eyeColor):
让 newPerson = new Person( { 编号: 0, 姓名:“维尔纳”, 姓氏:“文特尔”, 年龄:37 } );