JS中的反射机制
反射机制:指程序在运行时能够获取自身的信息。
例如:对于一个正在使用的对象,能够知道它有哪些方法和属性
JavaScript 中利用for(...in...)语句实现反射。
例如:
for(var p in obj){ if(typeof(obj[p]=='function')){ obj[p](); }else{ alert(obj[p]); } }
这里var p 表示声明的一个变量,用以存储对象的属性或方法。遍历obj对象的所有属性和方法,遇到属性则弹出它的值,遇到方法则立即执行。在后面可以看到,在面向对象的JavaScript程序设计中,反射机制是很重要的一种技术,它在实现类的继承中发挥了很大的作用。
用反射机制传递样式参数:
function setStyle(_style){ //得到要改变样式的界面对象 var el = getElement(); for(var p in _style){ el.style[p] = _style[p]; } }
程序中遍历 _style的每个属性,得到属性名称,然后再使用方括号语法将el.style中对应的属性赋值为_style中的相应属性的值。从而,el中仅改变指定的样式,而其他样式不会改变,得到了所要的结果。