何时使用Parasitic Constructor Pattern

时间:2011-03-31 16:24:23

标签: javascript

为什么要谨慎使用寄生构造函数模式以及何时使用该模式?

1 个答案:

答案 0 :(得分:2)

我认为这在很大程度上取决于风格和观点。因人而异。但是我可以想到一些问题。

最大的问题是你可能处于两个边缘案例之一。您使用Parasitic Constructor创建的“类”将被实例化很少次(1,可能是2) - 在这种情况下,您可能只是实例化“超类”并使用手动给定方法 - 或者你将要更多次实例化它,在这种情况下,在原型对象中存在额外的方法将产生一些效率增益。

我还要补充说,深层结构通常会产生开销。定义一个类“其他类的所有东西都只有一个更多的方法”意味着你要在层次结构中添加一个层来获得一个小细节。有时可能是必要的,但它也可能是一个警告标志,表明您的类层次结构可能不是首先有效设计的。

(我还要注意,如果你阅读整个link wsanville mentioned in the comments,你会看到Crockford或多或少表明他已经意识到经典模型,特别是涉及增殖和/或深层次在JavaScript中经常是不必要的,甚至可能是“一个错误。”这通常符合我的经验。有些问题领域使用类的层次结构进行建模仍然感觉很自然,并且知道在JavaScript中轻松支持它的各种技术是很好的,但是,坚持原型对象和功能通常也是有效的。)