Chaqiruvlar o'rtasidagi farq
Keling, yangi rabbit
obyekti yarataylik:
function Rabbit(name) {
this.name = name;
}
Rabbit.prototype.sayHi = function () {
alert(this.name);
};
let rabbit = new Rabbit("Rabbit");
Ushbu chaqiruvlar xuddi shu narsani qiladimi yoki yo’qmi?
rabbit.sayHi();
Rabbit.prototype.sayHi();
Object.getPrototypeOf(rabbit).sayHi();
rabbit.__proto__.sayHi();
Birinchi chaqiruvda this == rabbit
, boshqalarida this
Rabbit.prototype
ga teng, chunki bu aslida nuqta oldidagi obyekt.
Shunday qilib, faqat birinchi chaqiruv Rabbit
, boshqalari undefined
ni ko’rsatadi:
function Rabbit(name) {
this.name = name;
}
Rabbit.prototype.sayHi = function () {
alert(this.name);
};
let rabbit = new Rabbit("Rabbit");
rabbit.sayHi(); // Rabbit
Rabbit.prototype.sayHi(); // undefined
Object.getPrototypeOf(rabbit).sayHi(); // undefined
rabbit.__proto__.sayHi(); // undefined