2つの関数から1つのオブジェクト
重要度: 2
A
関数とB
関数が、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