Prototype面试题:Prototype是怎么扩展DOM的?
Prototype框架最大的一部分就是对DOM的扩展, Prototype为$()范围的元素添加了很多方便的方法,例如, 你可以写一个$('comments').addClassName('active').show()来得到ID为”comments”的元素,然后添加一个Class “active” 然后展示它(如果原本是隐藏的话), “comments”元素在原本的javascript里面并没有这些方法。
Prototype是通过Element.extend()方法来扩展DOM的
大部分DOM方法是由Element.Methods 对象来封装并且复制到Element对象的(为了方便起见),这些方法的第一个参数都是需要操作的element:
Element.hide('comments');
var div_height = Element.getHeight(my_div);
Element.addClass('contactform', ‘pending');
如果想做得更好一点,你可以把要扩展的对象直接传递给Element.extend()方法,这个方法会直接复制所有的方法到element, 例如:
var my_div = document.createElement(“div”);
Element.extend(my_div);
my_div.addClassName('pending').hide();
document.body.appendChild(my_div);