如何确定两个 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,以比较实例属性,而不是对象引用。
答案 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