知识卡片
能力重于血统
内容
JavaScript 是弱类型语言,从不需要类型转换,对象继承自哪条谱系变得无关紧要;对于一个对象来说重要的是它能做什么,而不是它从哪里来。这与基于类的语言不同——那类语言里类继承既提供代码重用,又引入类型系统规范;JavaScript 则提供了更丰富的代码重用模式。发散:接口/能力思维比类谱系更适合动态系统,测试也应围绕对象能响应的行为而不是它的原型链设计。
参考来源
- 位置:《JavaScript语言精粹(修订版)》第5章《继承 Inheritance》开篇
- 结论依据:原文对比基于类的语言(继承提供代码重用和类型系统约束)与 JavaScript(弱类型、从不需要类型转换),直接得出"对象继承关系变得无关紧要,重要的是它能做什么而不是它从哪里来"的结论。
- 原始内容:JavaScript是一门弱类型语言,从不需要类型转换。对象继承关系变得无关紧要。对于一个对象来说重要的是它能做什么,而不是它从哪里来。