前回のオブジェクトマスカレード



わかりにくい、難しい、というメッセージをいただきました。



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 という名前をつけたという意味だからです。



いかがでしたでしょうか?


この点はクリアになりましたか?




>>プログラミング徹底解説