zpět k lekci

Dvě funkce – jeden objekt

důležitost: 2

Je možné vytvořit funkce A a B tak, aby new A() == new B()?

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

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

alert( a == b ); // true

Pokud ano, uveďte příklad jejich kódu.

Ano, je to možné.

Jestliže funkce vrací objekt, pak jej new vrátí místo this.

Mohou tedy například vrátit stejný externě definovaný objekt obj:

let obj = {};

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

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