2013-04-21 107 views
2

我一直在读通过JavaScript: The Good Parts,目前我在“第5章:继承”一个当应选择原型继承VS功能继承?

据我了解,使用功能继承是首选,因为它允许一个对象的属性和变量,同时仍允许他们使用对象以外的方法被调用的隐私。然而,它似乎是有一个优势原型继承,因为你可以很容易创建一个原型对象(这使得了解对象是什么,对我来说,有点更具体)。

当我应该选择一个比其他?我是否应该尽可能使用功能继承?还是有我可以遵循的“更好的”指导方针来做出决定?

+0

我认为他们是略有不同,但它似乎是这个问题涵盖了很多的东西我要找的(即使用功能VS protoypal继承问题)。我希望会有一个快速简便的方法进行判断,但显然不是。 :) 感谢您的反馈。 – 2013-04-21 19:45:40

回答

3

我已经看到了使用功能的技术继承的主要形式很少的代码。我见过的绝大多数人使用原型继承。它快速且易于实现,并且对JavaScript来说看起来很自然。

这并不是说功能继承不应该被使用,但我认为你会发现原型足以满足大多数应用的需求。

让我们不要忘记还有,你仍然可以使用您的原型继承中的一些功能性的技术,如给每个对象它是关闭了在构造函数变量的函数的自己的版本。所以它不需要完全是一个或另一个。

最重要的是要了解原型和功能/关闭的概念。仅凭这一点就会给你你需要知道的信息,以便作出适当的决定。

+2

您可以通过[**本文**](http://www.richard-foy.fr/blog/2011/10/30/functional-inheritance-vs-prototypal-inheritance/) – plalx 2013-04-21 22:23:08

+0

@plalx这是有兴趣一篇伟大的文章!这一点尤其重要,因为我也学习CoffeeScript。 – 2013-04-21 23:10:29