2

假设一个主干视图,例如

var Row = Backgrid.Row = Backbone.View.extend({

  foo: function() {}

}

我想foo从这个源代码之外重新定义函数。
因为上面的代码本身也是一个库。

我该怎么做?

4

1 回答 1

3

JavaScript 中的继承是基于原型的。每个类构造函数都有prototype属性,您可以在其中定义它将创建的对象的方法。

Backgrid.Row.prototype.foo = function () {
    // new code
}

它将替换foo所有Backgrid.Row实例的现有实现,除非它们有自己的foo属性。

var row = new Backgrid.Row();
row.foo = function () { ... }; // row now has it's personal `foo` implementation

我应该告诉建议改为创建新课程

var MyRow = Backgrid.Row.extend({ foo: function () {} });
于 2013-09-16T10:34:13.840 回答