How JS this works, constructor function and prototype
Use call or apply to force the meaning of this to be whatever you want it to be. Also
by queryj
JavaScript
var person = {
fn : "Boa",
ln: "Snake",
greet: function(){
console.log("Hi, " + this.fn);
}
};
var SayIt = person.greet;
SayIt(); //Hi, undefined
SayIt.call(person); // Hi, Boa
SayIt.apply(person); // Hi, Boa
var persona = {
fn : "Boa",
ln: "Snake",
greet: function(greeting, punc){
console.log(greeting + ", " + "Hi, " + this.fn + punc);
}
};
var ShuoTa = persona.greet;
ShuoTa.call(person, "Welcome", "!!@K@");
ShuoTa.apply(person, ["Welcome", "!!dddads@K@"]);
function Planet(name, star)
{
this.name = name;
this.star = star;
this.orbit = function(){
console.log(name + " orbits around " + star);
}
}
var earth = new Planet("earth", "sun");
earth.orbit();
Planet.prototype.GetDailyHours = function(){
return 24;
}
console.log("HOURS: " + earth.GetDailyHours());