【发布时间】:2019-09-14 00:13:10
【问题描述】:
所以...我已经编程了 40 年,从机器语言到 C++ 再到 Javascript/Typescript。过去 10 年大量使用 Javascript。
当被问及原型继承与经典继承时,我似乎迷惑了。我一直在阅读文章,我一直在尝试排练,但是……老实说,我觉得我理解了这些概念,但不知道如何给面试官他们想要的东西。
C++ 是我对经典继承的参考框架(以及我也编写过的 Java 和 C#)。这里的继承是静态的——你从一个类中创建一个对象,就是这样。
Javascript 当然是动态的。您创建一个对象,该对象有一个原型,该原型本身也有一个原型,并且这些原型具有可以在运行时扩展的方法和属性,并且可用于共享该原型链的所有对象。
好的,很酷。
我明白这一切。但我似乎无法给面试官他们想听的内容。老实说,我使用 class 和 extends 以及 Typescript 接口,虽然我知道它在底层是不同的,但我体验到的唯一真正实际的区别是你可以在运行时修改原型,比如 polyfills(实现缺少的功能) .
所以...帮助。我觉得知识都在我的脑海里,但我不知道如何正确地传达它。
【问题讨论】:
-
怎么样:medium.com/javascript-scene/… - 这有帮助吗?
-
你说的每一句话都有道理......我不确定你在找什么......
-
根据我的经验,最初的采访是由非技术人员进行的,他们正在寻找特定的关键字作为回复。也许他们正在寻找神奇的短语“多重继承”,大多数具有经典继承的语言(如 C# 和 Java)都不支持它。很难说他们想要什么,我们只能推测。