【问题标题】:Prototype inheritance原型继承
【发布时间】:2015-07-07 07:56:10
【问题描述】:

我在 javascript 中编写了以下“类”:

var On = {

    Request: {
        User: function() {
            _Login = function() {console.log('Let me see.')};
        }
    },
    User: function() {},
    Article: function() {},
    Comment: function() {}

};


On.User.prototype = {

    constructor: function() { On.Request.User.call(this)},

    Create: function(username, password, email) { 
        username = username || null;
        password = password || null;
        email = email || null;

        //here I want to call _Login from Request.user
    },

    Login: function(username, password) { 
        username = username || null;
        password = password || null;
    },

    Reminder: function(username, email) { 
        username = username || null;
        email = email || null;
    }
};

...

var x = new On.User();
x.Create();

我如何从Request.User 继承User 函数?我已经以许多不同的方式尝试过它,但无法使其工作(甚至在用户的原型中创建了一个构造函数)。我怎样才能继承并从Login 调用_Login

Ps.:此代码只是一个示例,我是原型新手,并试图通过我编写的示例来学习它。

【问题讨论】:

标签: javascript prototype


【解决方案1】:

您应该阅读适当的 JS 材料以了解原型继承的思维方式。例如Follow this listthis article

您的代码基本上如下所示:

var On = {
  Request: {
    User: function requestUser() { console.log('let me see');}
  },
  User: function user() {}
}

On.User.prototype = On.Request.User();

On.User();

但请注意: 这不是正确的 JS 或您将如何构建应用程序。更多地了解您可以做什么。

你可以玩with this code at JSBin

【讨论】:

  • On.User.prototype = On.Request.User();?哦,当然不是。
猜你喜欢
  • 2013-05-20
  • 2010-09-28
  • 2018-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多