Çağrılar arasındaki farklar
önem: 5
Yeni bir rabbit
objesi yaratalım:
function Rabbit(name) {
this.name = name;
}
Rabbit.prototype.sayHi = function() {
alert(this.name);
};
let rabbit = new Rabbit("Rabbit");
Aşağıdaki çağrılar aynı şeyleri yapar mı yapmaz mı?
rabbit.sayHi();
Rabbit.prototype.sayHi();
Object.getPrototypeOf(rabbit).sayHi();
rabbit.__proto__.sayHi();
İlk çağrı this == rabbit
’e sonrakiler ise this
eşittir Rabbit.prototype'a olacak çekilde tanımlanmıştır. Daha önce de bahsettiğimiz gibi asıl obje
nokta`'dan önceki bölümdür.
Bundan dolayı sadece ilk çağrı Rabbit
’i gösterir. Diğerleri ise undefined
’dır.
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