簡體   English   中英

Javascript原型對象構造函數

[英]Javascript Prototype Object Constructor

從“功能性與面向對象的JavaScript開發”中獲得了此示例代碼,但收到未定義姓氏的錯誤消息?

根據我的理解,這篇文章說擁有原型初始化方法將意味着如果創建多個Person的話,“ initialize”方法僅在內存中存儲一​​次,但無法運行。 應該創建人並提醒姓氏嗎?

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/zh-cn/magazine/gg476048.aspx的代碼

您的代碼是錯誤的

做這個:

// Members
Person.prototype.initialize = function(name, lastname, birthdate) {

代替

// Members
Person.prototype.initialize(name, lastname, birthdate){

還有一個方便的技巧:測試JS時,請保持控制台打開。 節省一個小時的調試時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM