Javascript:为什么classList不是Element.prototype的属性

时间:2013-08-07 01:54:11

标签: javascript

为什么classList不是Element.prototype的属性?因为元素具有classList属性,所以我会自动将其视为元素的prototype,但显然它不是。> Element.prototype.classList undefined > document.createElement().classList DOMTokenList 。那它在哪里?

Chrome的控制台:

{{1}}

2 个答案:

答案 0 :(得分:3)

它必须是每个Element实例的属性,因为如果它位于Element原型上,则所有元素将共享相同的类列表,就像Array一样.length属性必须位于每个数组实例上,否则所有数组的长度都相同。原型的要点是它由相同类型的所有对象共享。

答案 1 :(得分:2)

除了 nnnnnn 的答案外,大多数实例变量都是在构造函数中分配的。

function foo(){
    this.bar = "baz";
}

foo.prototype.bar // undefined
new foo().bar // "baz"

函数被添加到原型中(通常,但它们也可以在构造函数中设置)。