我有一个名为tax
的课程。
export class tax {
private _id: string;
private _name: string;
private _percentage: number;`
constructor(id: string = "", taxName: string = "", percentage: number = 0) {
this._id = id;
this._name = taxName;
this._percentage = percentage;
}
public get id(): string {
return this._id;
}
public set id(v: string) {
this._id = v;
}
public get name(): string {
return this._name;
}
public set name(v: string) {
this._name = v;
}
public get percentage(): number {
return this._percentage;
}
public set percentage(v: number) {
this._percentage = v;
}
toString(){
return this.id;
}
}
当我创建此类的2个不同对象时
a1: tax = new tax("id","name",4);
a2: tax = new tax("id","name",4);
console.log(a1 === a2); //false
console.log(a1 == a2); //false
当我给a1 === a2时,它应该是真的。 什么更改我必须在我的班级做,所以它会给a1 === a2? 我在税务课上要做什么?或者我必须在税级中覆盖哪种方法?
答案 0 :(得分:2)
您正在比较同一班级的两个不同实例。即使实例中的值相同,它们也是两个完全独立的实体。
例如,如果我们要使用单个属性People
的{{1}}类。即使世界上有两个人称为name
,他们也是两个完全分开的人。
每个实例都有自己唯一的标识符。
如果您想检查两种税是否具有完全相同的值,您可以逐一检查它们。
John Smith
有关比较对象的更多信息,请参见here