دو تابع - یک شیء
اهمیت: 2
آیا امکان دارد که تابع های A
و B
را به گونه ای ساخت که new A()==new B()
؟
function A() { ... }
function B() { ... }
let a = new A();
let b = new B();
alert( a == b ); // درست
اگر امکان دارد، پس یک مثال از کدهایشان تهیه کنید.
بله، امکان دارد.
اگر یک تابع یک شیء را برگرداند سپس new
آن را به جای this
برمی گرداند.
پس آنها می توانند، برای مثال، شیء تعریف شده خارجی مشابه را برگردانند.
let obj = {};
function A() { return obj; }
function B() { return obj; }
alert( new A() == new B() ); // درست