前端 javascript 的 反射

反射机制指的是在程序运行时能获取自身的信息,例如一个对象在运行的时候知道自己有哪些方法和属性。

在JavaScript利用for( 。。。in。。。)语句,其语法如下:

for(var p in obj){
      //语句
}

这里的var p 表示声明的一个变量,用以存储对象obj的属性(方法)名称,有了对象名和属性(方法)名,就可以用方括号来调用一个对象的属性( 方法):

//此句话就是遍历obj对象的所有属性和方法,遇到方法则立刻执行。
//在面向对象的javaScript程序设计中,反射机制是很重要的一种技术,它在实现类的继承中发挥了很大的作用。
for(var p in obj){
      //语句
      if(typeof(obj[p])=="function"){
        obj[p]();
}else{
      alter(obj[p])
}
}

前端编程的时候,经常要遇到改变界面元素的样式,就可以通过对象的style 属性来改变,比如要改变背景色为红色,可以这样写:

element.style.backgroundColor = "#ff0000";

当style对象有很多属性,基本上CSS里拥有的属性在javascript中都能够使用。

//那么传入一个数组
let style={  
      color:#ffffff,  
      backgroundColor:#ff0000,  
      borderWidth:2px  
} 
//执行函数
function setStyle(_style){  
      //得到要改变样式的界面对象  
      var element=getElement();  
      element.style=_style;  
}
//调用
setStyle(style)

这要就可以了,但是有一个问题就是,如果之前执行过element.style.height="20px"; 再执行setStyle就会被覆盖掉。
所以需要一个一个的执行,我们只需要把执行函数改一下


function setStyle(_style){  
      //得到要改变样式的界面对象  
      var element=getElement();  
      for(var p in _style){  
            element.style[p]=_style[p];  
      }  
}

你可能感兴趣的:(前端 javascript 的 反射)