在构造函数外定义一个属性,如namethis.id,但是当我初始化时,我得到了属性,它在构造函数之外。
创建了一个类person并定义了一个属性name(不在构造函数中)像这样
class Person {
name;
}
let instance_ = new Person()
console.log(instance_)
我得到输出
然后,我定义了另一个类Employee并定义了属性id(在构造函数)Person {name: undefined}
class Employee {
constructor() {
this.id
}
}
let instanceEmp_ = new Employee()
console.log(instanceEmp)
得到的输出
{}//员工没有得到id地产
我没有得到id类Employee中的属性。为什么?
你必须给这个属性赋值,否则js会认为它是getter
class Employee {
constructor() {
this.id = undefined
}
}
let instanceEmp = new Employee()
console.log(instanceEmp)
一种解决方案是将id变量传递给构造函数:
class Employee {
constructor(id) {
this.id = id;
}
}
let instanceEmp = new Employee()
console.log(instanceEmp) // Employee {id: undefined}