javascript - _createElement 方法的目的是什么?

标签 javascript backbone.js backbone-views

我正在学习 Backbone.js(版本 1.3.3)。

Backbone.View 中有如下一行 ( line 1441 )

_createElement: function(tagName) {
  return document.createElement(tagName);
},

为什么Backbone.View_createElement(tagName)方法而不是直接使用'document.createElement(tagName)'。

最佳答案

当您开发一个将在不同项目(您甚至无法想象的项目)中使用的库时,您必须封装所有内容并提供简单的方法来覆盖它的每个细节。这就是 Backbone 的开发人员所做的。

现在想象一个使用 Backbone 的程序员不想使用 document.createElement ,而是想在自己的结构中创建节点。然后,他的 BaseNodeView 可以重写 _createElement 来处理该问题:

var BaseNodeView = Backbone.View.extend({
    _createElement: function(tagName) {
        return NodeFactory.create(tagName);
    },
});

这正是它的用途,它写在 comments just above 中.

Produces a DOM element to be assigned to your view. Exposed for subclasses using an alternative DOM manipulation API.

该函数是used within the view code抽象出背后真正发生的事情,让您决定是否需要默认行为。

Backbone 的一些 API 没有记录,需要深入研究 the source找到它可以挂接的所有方法。

关于javascript - _createElement 方法的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41032201/

相关文章:

javascript - JavaScript 中的 abort 函数有什么意义?

ruby-on-rails - 如何使用带有主干的超薄模板?

javascript - Backbone/Marionette - 检查模型是否存在

javascript - 在包含父元素的主干 View 中使用模板

javascript - 使用 requirejs amd shim 加载 soundmanager2,日志未定义

javascript - 子类 View 渲染后如何渲染父类(super class) View ?

javascript - HTML5验证: field not required but,如果填写,必须匹配模式?

javascript - html - 为什么单选按钮被多次选择而不是一个单选框?

javascript - jquery 移动转义页面 <div> 的一部分(动态创建)

json - 如何使用 Backbone Marionette 处理 JSON 数据中的未定义值