レッスンに戻る

2つの関数 - 1つのオブジェクト

重要性: 2

new A()==new B() のような関数 AB を作ることはできるでしょうか?

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

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

alert( a == b ); // true

もしできるなら、そのコード例を書いてみてください。

はい、可能です。

もし関数がオブジェクトを返す場合、newthis の代わりにそれを返します。

なので、例えば、同じ外部で定義されたオブジェクト obj を返すことで実現できます。:

let obj = {};

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

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