javascript - 覆盖backbone的 View 函数

标签 javascript backbone.js overriding

假设一个主干 View ,例如

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

  foo: function() {}

}

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

我该怎么做?

最佳答案

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

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

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

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

我应该告诉你,建议创建新的类

var MyRow = Backgrid.Row.extend({ foo: function () {} });

关于javascript - 覆盖backbone的 View 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18825630/

相关文章:

java - 编译器如何选择正确的重写方法

javascript - 什么是 "types first"流架构?

javascript - 如何在新标签页中打开一个 div 链接 Javascript onClick="window.location

javascript - 当 api 调用超时时,BackboneJS 无法转到 .fail

javascript - backbone.js 事件没有触发,我不明白为什么

c++ - 覆盖函数及其在基类中的调用

javascript - wget js重定向

javascript - 如何删除jquery上附加的div

javascript - 如何在 Jasmine 测试框架中处理谷歌地图事件

android - 无法使用 Android Studio 覆盖 view.View 方法