前回のオブジェクトマスカレード。
わかりにくい、難しい、というメッセージをいただきました。
function Student(name) {
this.__tmp = Person;
this.__tmp( name );
delete this.__tmp;
this.sayBye = function() {
alert('Bye');
}
}
のところです。
これは
コードで示すと this.__tmp = Person の箇所は、Person ファンクションの定義より次の意味になります。
this.__tmp = function(name) {
this.__name = name;
this.sayHello = function() {
alert( this.__name );
}
}
なぜなら
function Person(name) {
this.__name = name;
this.sayHello = function() {
alert( this.__name );
}
}
ということは、
function (name) {
this.__name = name;
this.sayHello = function() {
alert( this.__name );
}
}
というファンクションオブジェクトに、Person という名前をつけたという意味だからです。
いかがでしたでしょうか?
この点はクリアになりましたか?