首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript原型对象构造器

Javascript原型对象构造器
EN

Stack Overflow用户
提问于 2013-10-27 10:39:35
回答 1查看 63关注 0票数 1

从“Functional.面向对象的JavaScript开发”中获得了这个示例代码,但是得到了未定义姓氏的错误吗?

根据我的理解,这篇文章是说,拥有一个原型初始化方法意味着,如果我创建了许多人的方法,但是不能在下面运行,那么这个方法‘初始化’只能存储在内存中一次。应该创建人并通知姓氏吗?

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

代码语言:javascript
复制
    // 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代码

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-27 10:45:03

你的代码错了

这样做:

代码语言:javascript
复制
// Members
Person.prototype.initialize = function(name, lastname, birthdate) {

而不是

代码语言:javascript
复制
// Members
Person.prototype.initialize(name, lastname, birthdate){

还有一个方便的提示:在测试JS时保持控制台打开。将自己从一个小时的调试中拯救出来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19617139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档