Javascript扩展类

Javascript扩展类,javascript,extends,Javascript,Extends,扩展javascript类以使类B继承类a的所有内容(类B扩展了类a)的正确/最佳方法是什么 最简单的方法可能是函数继承,但也有优点和缺点。道格拉斯·克罗克福德(Douglas Crockford)对JavaScript中的继承有一些非常好的解释: :用JavaScript做事情的“自然”方式 :更接近大多数OO语言中的内容,但有点与JavaScript格格不入 您还可以在for循环中添加过滤器。实际上。。。除了b.原型=新a,还有其他方法吗;JavaScript没有类。因此,整个问题没有意义

扩展javascript类以使类B继承类a的所有内容(类B扩展了类a)的正确/最佳方法是什么


最简单的方法可能是函数继承,但也有优点和缺点。

道格拉斯·克罗克福德(Douglas Crockford)对JavaScript中的继承有一些非常好的解释:

  • :用JavaScript做事情的“自然”方式
  • :更接近大多数OO语言中的内容,但有点与JavaScript格格不入

  • 您还可以在for循环中添加过滤器。

    实际上。。。除了b.原型=新a,还有其他方法吗;JavaScript没有类。因此,整个问题没有意义。你说的是Java吗?还是动作脚本?它们确实有类,但它们与JavaScript完全无关。或者您正在谈论一些JavaScript库,它在JavaScript中实现基于类的OO,例如MooTools?在这种情况下,答案取决于您所谈论的库。这里是我的类对象:看看这个轻量级库,它提供了您想要的东西:用javascript扩展类。作为奖励,它还添加了接口和特性/混合。请参阅Mozilla站点上的Javascript原型链简介:这既不是OP要求的,也不是正确的“扩展”-您应该迭代Object.keys,或者至少检查hasOwnProperty是否需要hasOwnProperty检查,如果方法和属性相同,将覆盖它们,没有以后调用超类方法的能力。第二个链接已经死了。第二个链接现在在这里:哇,Douglas Crockford已经很好地解释了这一点,感谢这些伟大的链接。他创造方法的模式是一个启示。
       extend = function(destination, source) {   
              for (var property in source) {
                destination[property] = source[property];
              }
              return destination;
        };