【问题标题】:is "Simple Javascript Inheritance" by John Resig still ok?John Resig 的“简单 Javascript 继承”还可以吗?
【发布时间】:2012-06-19 19:19:36
【问题描述】:

我找到了http://ejohn.org/blog/simple-javascript-inheritance/,这正是我正在寻找的东西,但我想知道它是否仍然有效以及是否会导致任何问题。

【问题讨论】:

  • 我不知道。 Resig 是 Javascript 的大热门之一。我猜如果它是错误的,他不一定会留下一些东西,但一种方法并不适合所有情况。

标签: javascript oop javascript-objects


【解决方案1】:

现在许多现代库都使用经典继承。它的核心方法如下(Stoyan Stefanov 的 JavaScript 模式,第 127 页):

function inherit(C, P) { 
    var F = function () {}; 
    F.prototype = P.prototype; 
    C.prototype = new F(); 
    C.uber = P.prototype; 
    C.prototype.constructor = C; 
} 

使用它的项目示例如下:

【讨论】:

  • 我不明白最后两行...我个人喜欢使用 Base.extend({}) 的可能性。这种方法有什么好处?
  • 最后两行保存到父构造函数的链接并恢复到构造函数的链接(否则它将等于 F)。对我个人来说最大的优势是这是一个纯 JS,没有引入太多新的语法糖。
  • 这个答案的一个很好的扩展将展示你如何处理构造函数。具体来说,如何从子类中调用父构造函数。
猜你喜欢
  • 1970-01-01
  • 2017-06-01
  • 2013-02-09
  • 1970-01-01
  • 2012-02-27
  • 2011-04-18
  • 2010-09-27
  • 1970-01-01
  • 2012-02-21
相关资源
最近更新 更多