重载vs重写在javascript中

dev*_*r87 4 javascript computer-science object-oriented-analysis node.js

在最近的一次JavaScript访谈中,我被问到有关重载和覆盖的问题.我知道这是Java中的一个概念:

https://softwareengineering.stackexchange.com/questions/164353/whats-the-difference-between-overloading-a-method-and-overriding-it-in-java

但是在JavaScript中是否有类似内容,如果是这样,代码示例会是什么?我的理解是,重载在javascript中并不常见.你为什么需要在JS中使用"重载"?

OverRiding对我来说有点清楚 - 过度骑行的一个例子是在继承超级类的子类中,但是通过一些方法/属性为子类创建唯一的方法/属性.

小智 6

JavaScript不支持重载.

JavaScript支持覆盖,因此如果您定义两个具有相同名称的函数,则定义的最后一个函数将覆盖先前定义的版本,并且每次对函数进行调用时,将执行最后定义的函数.

更多内容请阅读http://blog.mastykarz.nl/overloading-functions-javascript/

  • @Maksim我确信JS不支持重载..在JS中你的函数只是另一个对象,所以当你重新分配该变量时,变量只是对该对象的引用,对该变量的引用将丢失并且该对象被GCed ..新函数会替换但不会覆盖实际函数。.在覆盖对两个函数的引用时应该存在,只是范围不同 (2认同)