Junior
JavaScriptте instanceof оператору эмне текшерет?
sobes.tech AI
AIден жооп
JavaScriptтеги instanceof оператору объекттин белгилүү бир класс же конструктордун инстанциясы экенин текшерет.
Иштөө принциби:
instanceofоператору конструктордунprototypeобъектин объекттин прототиптик чынжырында бар-жогун текшерет.- Эгер
prototypeчынжырда болсо, натыйжаtrueболот. - Эгер жок болсо, натыйжа
falseболот.
Мисалдар:
// Класс түзүү
class Animal {
// Конструктор
constructor(name) {
this.name = name;
}
}
// Класс инстанциясын түзүү
let dog = new Animal("Buddy");
// dog объектин Animal классынын инстанциясы экенин текшерүү
console.log(dog instanceof Animal); // true
// dog объектин Object классынын инстанциясы экенин текшерүү (жыланча)
console.log(dog instanceof Object); // true
// dog объектин Array классынын инстанциясы эмес
console.log(dog instanceof Array); // false
// Встроенный типтер менен текшерүү
let arr = [1, 2, 3];
console.log(arr instanceof Array); // true
console.log(arr instanceof Object); // true
let num = 123;
console.log(num instanceof Number); // false (примитивтер үчүн)
// `new` аркылуу түзүлгөн объекттер үчүн
let numObj = new Number(123);
console.log(numObj instanceof Number); // true
Өзгөчөлүктөрү:
instanceofпрототип чынжыр аркылуу иштейт, ошондуктан жыйынтык ата-энелер конструкторлору үчүн даtrueболушу мүмкүн.- Примитивтер (string, number, boolean, null, undefined, symbol, bigint) үчүн,
instanceofадаттаfalseкайтарат, эгер алар тиешелүү обертка объекттери аркылуу түзүлбөсө (new String(),new Number()ж.б.). - JavaScript иштетүү контексттеринде (мисалы, браузер терезелери же iframe) так болбой калышы мүмкүн, анткени ар бир контекст өзүнүн конструкторлоруна ээ.
Типти текшерүүнүн башка ыкмалары:
typeof: негизги маалымат түрүн көрсөтөт (string, number, boolean, object, function, undefined, symbol, bigint). Конкреттүү классга таандыктыкты текшерүүгө ылайыктуу эмес.Object.prototype.toString.call(): такыраак типтин саптамасын кайтарат ("[object Array]","[object Date]"жана башка).
Жалпысынан, instanceof объекттин конкреттүү класска же анын мураскорлугуна таандык экенин текшерүүдө пайдалуу.