利用CoffeeScript`extens`与Backbone.js`extens`之间的基本区别

rud*_*ph9 18 inheritance coffeescript backbone.js

使用CoffeeScript extends与Backbone.js 之间的根本区别是extend什么?

例如,怎么样

class User extends Backbone.Model
Run Code Online (Sandbox Code Playgroud)

不同于

User = Backbone.Model.extend()
Run Code Online (Sandbox Code Playgroud)

Tre*_*ham 22

这两者是相同的.引用Backbone.js更改日志:

0.3.0:CoffeeScript类现在可以无缝地继承Backbone类.

CoffeeScript Child extends Parent和Backbone Child = Parent.extend()都做了三件重要的事情:

  1. (最重要的)他们设置Child.prototypenew ctor,ctor其原型是一个函数Parent.prototype.这确立了原型继承.
  2. 他们将所有Parent的静态属性复制到Child.
  3. 他们定了Child.__super__ = Parent.这主要是为了支持CoffeeScript的方法中类似Ruby的super关键字Child.