2つの関数 - 1つのオブジェクト
重要性: 2
new A()==new B() のような関数 A と 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