从“Functional.面向对象的JavaScript开发”中获得了这个示例代码,但是得到了未定义姓氏的错误吗?
根据我的理解,这篇文章是说,拥有一个原型初始化方法意味着,如果我创建了许多人的方法,但是不能在下面运行,那么这个方法‘初始化’只能存储在内存中一次。应该创建人并通知姓氏吗?
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代码
发布于 2013-10-27 10:45:03
你的代码错了
这样做:
// Members
Person.prototype.initialize = function(name, lastname, birthdate) {而不是
// Members
Person.prototype.initialize(name, lastname, birthdate){还有一个方便的提示:在测试JS时保持控制台打开。将自己从一个小时的调试中拯救出来。
https://stackoverflow.com/questions/19617139
复制相似问题