如何按原型添加Nodelist / HtmlColection新方法?

时间:2012-03-07 18:03:46

标签: javascript prototype

document.querySelectorAll('a')document.getElementsByTagName('a')类型都是对象,所以我不能以这种方式添加方法:

        Object.prototype.method = function(){ alert(this); }

但是,这项工作:

        a = document.getElementsByTagName('a');
        a.__proto__.__proto__.method = function(){ alert(this); }
        a.method();//object HTMLCollection

我想a.__proto__ == a.constructor.prototype,是吗?

1 个答案:

答案 0 :(得分:0)

可以使用Object.prototype。但是我不建议搞砸它。

instance_of_my_object = document.getElementsByTagName(' a'); 是您的Object的单个实例。在这种情况下,instance_of_my_object是NodeList instance_of_my_object.method = ... 将您的方法或变量附加到此单个NodeList实例。

如果要将某些方法附加到类的所有实例,则可以使用原型(如下所示: className.prototype.myMethod = function()... )。