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中仅改变指定的样式,而其他样式不会改变,得到了所要的结果。 

原文地址:https://www.cnblogs.com/mdorg/p/2987095.html