Fundamental differences between utilizing CoffeeScript `extends` vs. Backbone.js `extend`

后端 未结 2 1695
春和景丽
春和景丽 2021-01-07 20:09

What are the fundamental differences between utilizing CoffeeScript extends vs. Backbone.js extend?

For example, how is

cla         


        
2条回答
  •  刺人心
    刺人心 (楼主)
    2021-01-07 20:42

    The two are intended to be equivalent. To quote the Backbone.js changelog:

    0.3.0: Backbone classes may now be seamlessly inherited by CoffeeScript classes.

    Both CoffeeScript's Child extends Parent and Backbone's Child = Parent.extend() do three important things:

    1. (Most important) They set Child.prototype to new ctor, where ctor is a function whose prototype is Parent.prototype. That establishes prototypal inheritance.
    2. They copy all of Parent's static properties onto Child.
    3. They set Child.__super__ = Parent. This is mainly to support CoffeeScript's Ruby-like super keyword in Child's methods.

提交回复
热议问题