我正在研究Backbone.js(版本1.3.3)。
Backbone.View
(line 1441)
_createElement: function(tagName) {
return document.createElement(tagName);
},
为什么Backbone.View
有_createElement(tagName)
方法,而不是直接使用'document.createElement(tagName)'。
答案 0 :(得分:1)
当您开发一个将在不同项目中使用的库时,您甚至无法想象它们,您必须封装所有内容并提供简单的方法来覆盖它的每个细节。这就是Backbone的开发者所做的。
现在假设一个使用Backbone的程序员不想使用document.createElement
而是想要在他自己的结构中创建节点。然后,他的BaseNodeView
可以覆盖_createElement
来处理:
var BaseNodeView = Backbone.View.extend({
_createElement: function(tagName) {
return NodeFactory.create(tagName);
},
});
这正是它的用途,它写在comments just above。
生成要分配给视图的DOM元素。 暴露于 使用备用DOM操作API的子类。
该函数是used within the view code抽象背后真正发生的事情,由你来决定是否需要默认行为。
某些Backbone的API没有记录,需要深入研究the source以找到可以挂钩的各种方式。