在JavaScript中使用继承模式

Šim*_*das 8 javascript inheritance use-case

根据我的经验,JavaScript会这样做:

  • 操纵DOM或其​​他主机对象
  • 添加事件处理程序
  • 做Ajax

自从我开始深入研究原型继承之后,我想知道它是如何在实践中实际使用的.有什么用例?

有人在这里积极使用继承模式吗?做什么的?

(我知道我的问题有很多答案 - 我只想听听其中的一些内容,以便了解在JavaScript中使用继承)

Dan*_*ker 2

我使用 jQuery(以及之前的 JavaScript)的经验是,原型继承并不像我预期的那么有用。它有用途,但对于语言来说并不重要。

在 Javascript 中,如果你想用方法返回一个对象foo

return { 
  foo: function() { 
    alert('You called foo!'); 
  }
};
Run Code Online (Sandbox Code Playgroud)

调用者可以将此类对象视为多态的 - 也就是说,他们可以调用而foo不必担心对象的“类型”。没有必要继承。

在此背景下,原型只是一种优化。它们允许您创建大量对象,而无需在每个实例中复制大量函数属性。这就是 jQuery 在内部使用它的原因。一个 jQuery 对象有几十个函数,将它们复制到每个实例中可能会产生很大的开销。

但从 jQuery 用户的角度来看,原型并不是特别重要。它可以被重写以不使用它们,并且它仍然可以工作(但可能会使用更多的内存)。