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