2016-12-08 32 views
1

我正在学习Backbone.js(版本1.3.3)。_createElement方法的用途是什么?

有一个线像下面在Backbone.Viewline 1441

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

Backbone.View为什么具有_createElement(tagName)方法,而不是直接使用 '使用document.createElement(的tagName)'。

回答

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抽象什么是真正发生的事情背后,留给了你来决定,如果默认行为而被通缉。

骨干API的一些没有记录,它需要深入the source找到它可以挂钩的每种方式。

+0

程序员可能会忽略_createElement让我们更改CREATING ELEMENT流程!!!!!!!太棒了 –