返回課程

兩個函式 – 一個物件

重要性:2

是否可以建立函式 AB,讓 new A() == new B()

function A() { ... }
function B() { ... }

let a = new A();
let b = new B();

alert( a == b ); // true

如果可以,請提供它們的程式碼範例。

是的,這是可能的。

如果函數傳回物件,則 new 會傳回它,而不是 this

因此,例如,它們可以傳回相同的外部定義物件 obj

let obj = {};

function A() { return obj; }
function B() { return obj; }

alert( new A() == new B() ); // true