[英]Javascript Prototype Object Constructor
從“功能性與面向對象的JavaScript開發”中獲得了此示例代碼,但收到未定義姓氏的錯誤消息?
根據我的理解,這篇文章說擁有原型初始化方法將意味着如果創建多個Person的話,“ initialize”方法僅在內存中存儲一次,但無法運行。 應該創建人並提醒姓氏嗎?
// 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);
您的代碼是錯誤的
做這個:
// Members
Person.prototype.initialize = function(name, lastname, birthdate) {
代替
// Members
Person.prototype.initialize(name, lastname, birthdate){
還有一個方便的技巧:測試JS時,請保持控制台打開。 節省一個小時的調試時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.