javascript - 如何组织公共(public)代码

标签 javascript backbone.js coffeescript

刚开始使用 backbone.js,我注意到的一件事是我的许多模型、集合和 View 共享一些非常相似的方法。我想重构它们并从提取的位置 (/lib?) 调用它们。我去搜索文档和/或示例,但对我发现的内容如此之少(具体来说,没有)感到惊讶。那么,有几个问题:

  • 为什么我忽略了为什么很少有主干方法的例子被分解到公共(public)库中?
  • Backbone 项目中是否有共享代码的标准/商定位置?
  • 是否有主干类和/或通用插件来帮助存储通用方法?

任何想法表示赞赏 - 提前致谢。

(编辑)示例添加:

从 View 中获取此代码。 (不可否认,它太短了,实际上值得重构,但它的简单性使其成为一个简洁的例子)

  destroy: () ->
    @model.destroy()
    @remove()
    return false

假设我想将其重构为:

  destroy: () ->
    restful_destroy_method(this)

然后调用:

 restful_destroy_method: (view) ->
    view.model.destroy()
    view.remove()
    return false

来自公共(public)图书馆。似乎没有其他人这样做的原因是什么?

最佳答案

看情况,看你的常用代码是什么。

对于您的示例,我可能会创建一个更具体的 View 以进行扩展。

为直接的 JavaScript 道歉,我对 CoffeeScript 不是很流利,无法在答案中使用它。

DestroyableView = Backbone.View.extend({
    destroy: function () {
        this.model.destroy();
        this.remove();
        return false;
    }
});

然后,我不会创建 new Backbone.View(),而是创建 new DestroyableView()DestroyableView 可以有其他常用函数,或者您可以创建多个不同的父定义并使用 _.extend()将它们全部应用于单个对象。

关于javascript - 如何组织公共(public)代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8681166/

相关文章:

JavaScript 并不总是加载

javascript - Angular - 嵌套 $scope 会产生嵌套 $watchers?

javascript - 触摸事件: handle swipe differently from click?

javascript - 使用 Backbone 将 "this"传递给引导框回调

javascript - 访问 Backbone View 的功能以制作 sinon stub

javascript - 节点JS : Pass object from HTML to Server

javascript - querySelectorAll 在 Rails 5 中不起作用

javascript - 将当前窗口打印到文件/Blob 对象?

javascript - 我尝试用 Canvas 来做到这一点。可以做到?

javascript - PixiJS - 如何在鼠标悬停时更改光标?