1

「Functional vs. Object-Oriented JavaScript Development」からこのサンプル コードを取得しましたが、姓が定義されていないというエラーが発生しましたか?

私の理解では、この記事では、プロトタイプの初期化メソッドを持つということは、多くの Person を作成した場合に「initialize」メソッドがメモリに 1 回だけ格納されることを意味すると言っていますが、実行するために下に移動することはできません。個人を作成して姓を警告する必要がありますか?

http://jsfiddle.net/NdLyA/4/

    // Pseudo constructor
var Person = function(name, lastname, birthdate) 
{
    this.initialize(name, lastname, birthdate);
}

// Members
Person.prototype.initialize(name, lastname, birthdate)
{
    this.Name = name;
    this.LastName = lastname;
    this.BirthDate = birthdate;
}
Person.prototype.getAge = function()   
{
    var today = new Date();
    var thisDay = today.getDate();
    var thisMonth = today.getMonth();
    var thisYear = today.getFullYear();
    var age = thisYear-this.BirthDate.getFullYear()-1;
    if (thisMonth > this.BirthDate.getMonth())
        age = age +1;
    else 
       if (thisMonth == this.BirthDate.getMonth() &&
           thisDay >= this.BirthDate.getDate())
           age = age +1;
    return age;
}

var jon = new Person('Jon','Smith', null);
alert(jon.Name);

http://msdn.microsoft.com/en-us/magazine/gg476048.aspxのコード

4

1 に答える 1