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');

vardiv_height=Element.getHeight(my_div);

Element.addClass('contactform',‘pending');

如果想做得更好一点,你可以把要扩展的对象直接传递给Element.extend()方法,这个方法会直接复制所有的方法到element,例如:

varmy_div=document.createElement(“div”);

Element.extend(my_div);

my_div.addClassName('pending').hide();

document.body.appendChild(my_div);

相关推荐