how typescript comparing two objects?
本问题已经有最佳答案,请猛点这里访问。
我有一门课叫
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 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; } } |
当我创建这个类的两个不同对象时
1 2 3 4 5 | 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?我在税务课上要做什么?或者我必须在税类中重写哪个方法?
您正在比较同一类的两个不同实例。尽管实例中的值相同,但它们是两个完全独立的实体。
例如,如果我们有一个具有单个属性
每个实例都有自己的唯一标识符。
如果您想检查两种税是否具有完全相同的值,可以逐个检查它们。
1 | console.log(a1.getId() === a2.getId() && a1.getName() === a2.getName() && a1.getPercentage() === a2.getPercentage()) // true |
有关比较对象的详细信息,请参见此处