我正在尝试了解它是如何工作的

为什么函数在原型中具有相同的名称,以及函数在使用时如何使用
 例如Model.fromForm优先于原型之一。我的意思是声明是在基类/对象中进行的。从该基类/对象创建模型时,究竟发生了什么?

我还有另一个问题,但我将首先等待。

谢谢,理查德

最佳答案

Spine模型对象和模型的“实例”是不同的对象,因此要评估不同的功能。这里没有优先级或重载。例如(在coffeescript中),以下操作相同:

YourModel instance = YourModel.fromForm(form) # Uses the model object fromForm




YourModel instance = new YourModel
instance.fromForm(form) # Uses the prototype fromForm


如果您选择look at the source code,则可以看到为什么等效。对象fromForm只是声明为this.fromForm,它调用原型之一:

@fromForm: ->
  (new this).fromForm(arguments...)

关于javascript - 为什么spine.Model在原型(prototype)中具有相同名称的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15641044/

10-10 05:01