G'alati instanceof
Nima uchun instanceof
quyida true
ni qaytaradi? Biz a
ning B()
tomonidan yaratilmaganligini osongina ko’rishimiz mumkin.
function A() {} function B() {} A.prototype = B.prototype = {}; let a = new A(); alert( a instanceof B ); // true
Ha, haqiqatan ham g’alati ko’rinadi.
Ammo instanceof
funktsiyaga ahamiyat bermaydi, aksincha uning prototype
, prototip zanjiriga mos kelishi muhim.
Va bu yerda a.__proto__ == B.prototype
, shuning uchun instanceof
true
ni qaytaradi.
Shunday qilib, instanceof
mantig’iga ko’ra, prototype
aslida konstruktor funktsiyasini emas, balki turini belgilaydi.