也就是说,为什么我们不遵循使用
的标准JavaScript惯例var el = new Element("div");
但请使用
var el = document.createElement("div");
要做到吗?
(PS document
是类Document
的对象。Element
也是一个类,Document
和Element
类都定义在浏览器环境)。
答案 0 :(得分:4)
所有document.xxxx
方法都是DOM的一部分,而不是Javascript语言的一部分。它是一个独立的API,属于浏览器,但允许浏览器中的哪个Javascript访问。
如果要在浏览器中实现另一种语言,它将使用完全相同的API来访问DOM。实际上,IE中的VBScript就是这样做的 - 为了证明,see some example code here。 (但请注意,我不建议在浏览器中实际使用VBScript!坚持使用JS )
Javascript可以在浏览器环境之外使用(例如node.js),在这种情况下,它可能没有或不需要DOM类结构。
DOM也可以在浏览器之外实现,并且任何使用它的语言都可以使用相同的API。例如,PHP有一个DOMDocument类,它实现了所有相同的DOM方法,以便从树中添加/删除/ etc元素。
答案 1 :(得分:1)
我认为这是因为Javascript作为一种语言需要与第三方控制结构无关。在这种情况下,向DOM添加新元素的DOM应由其控制对象document
管理,而不是通过语言new Element("div")
进行管理。
在node.js中没有DOM元素的概念,因此在DOM控件中内置的语言将是多余的。因此,在浏览器中抽象DOM的控制和操作是有意义的,因此应该由抽象对象document
而不是语言中的控制结构来管理。