为什么要谨慎使用寄生构造函数模式,什么时候使用该模式是合适的?
发布于 2011-04-01 01:10:43
我认为这在很大程度上是一个风格和观点的问题。YMMV.但我能想到一些涉及到的问题。
最大的一个问题是你可能处于两种边缘情况中的一种。要么用寄生构造器创建的“类”只实例化很少的次数(1次,也许2次) --在这种情况下,你也可以只实例化“超类”,并用一个给定的方法手动扩充它--或者你要实例化它的次数更多,在这种情况下,在原型对象中存在额外的方法将产生一些效率提升。
我还补充说,一般情况下,深层类结构会有开销。定义一个“其他类拥有的所有东西,但只有一个方法”的类意味着你要为层次结构中的一个小细节添加一个层。有时可能是必要的,但这也可能是一个警告信号,表明您的类层次结构可能一开始就没有被有效地设计。
(我还要注意到,如果你阅读了整个link wsanville mentioned in the comments,你会在最后看到克罗克福德或多或少地说,他意识到经典模型,特别是涉及扩散和/或深层层次结构的经典模型,在JavaScript中通常是不必要的,甚至可能是“一个错误”。这通常与我的经验相符。在某些问题领域,使用类层次结构进行建模仍然感觉很自然,了解在JavaScript中轻松支持它的各种技术是很好的,但坚持使用原型对象和函数通常也是有效的。)
https://stackoverflow.com/questions/5503106
复制相似问题