如何确定两个ES6类实例的相等性?

时间:2019-01-11 18:01:08

标签: javascript class ecmascript-6 equality

如何确定两个 ES6类对象实例之间的相等性?例如:

class Rectangle {
  constructor(height, width) {    
    this.height = height;
    this.width = width;
  }
}

(new Rectangle(1, 1)) === (new Rectangle(1, 1))
(new Rectangle(3, 0)) === (new Rectangle(9, 3))

最后两个语句返回false,但我希望它返回true,以比较实例属性,而不是对象引用。

1 个答案:

答案 0 :(得分:1)

DECLARE strLast_grp VARCHAR2(20); BEGIN -- Test statements here FOR aRow IN (WITH cteCsv_data AS (SELECT 'group1,serverA' AS CSV FROM DUAL UNION ALL SELECT 'group1,serverB' AS CSV FROM DUAL UNION ALL SELECT 'group2,serverA' AS CSV FROM DUAL UNION ALL SELECT 'group3,serverC' AS CSV FROM DUAL), cteGrp_srv AS (SELECT TRIM(REGEXP_REPLACE(c.CSV, '(.*),.*', '\1')) AS GRP, TRIM(REGEXP_REPLACE(c.CSV, '.*,(.*)', '\1')) AS SRV FROM cteCsv_data c) SELECT gs.GRP, gs.SRV FROM cteGrp_srv gs ORDER BY gs.GRP, gs.SRV) LOOP IF strLast_grp IS NULL OR strLast_grp <> aRow.GRP THEN strLast_grp := aRow.GRP; IF strLast_grp IS NOT NULL THEN DBMS_OUTPUT.PUT_LINE(' '); END IF; DBMS_OUTPUT.PUT_LINE(aRow.GRP); END IF; DBMS_OUTPUT.PUT_LINE(aRow.SRV); END LOOP; -- aRow END; 类添加方法:

Rectangle