当前位置:Gxlcms > JavaScript > 简单理解Javascript中的call和apply

简单理解Javascript中的call和apply

时间:2021-07-01 10:21:17 帮助过:9人阅读

javascript中面向对像的能力是后来加进来的, 为了兼容性, 所以整出了很多奇特的东西,

function Animal(){    
    this.name = "Animal";    
    this.showName = function(){    
        alert(this.name);    
    }    
}    
  
function Cat(){    
    this.name = "Cat";    
}    
   
var animal = new Animal();    
var cat = new Cat();    
    
//通过call或apply方法,将原本属于Animal对象的showName()方法交给对象cat来使用了。    
//输入
结果为"Cat" animal.showName.call(cat,","); //animal.showName.apply(cat,[]);

所以,可以看出call和apply是为了动态改变this而出现的,当一个object没有某个方法,但是其他的有,我们可以借助call或apply用其它对象的方法来操作。


用的比较多的,通过document.getElementsByTagName选择的dom 节点是一种类似array的array。它不能应用Array下的push,pop等方法。我们可以通过:
var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));
这样domNodes就可以应用Array下的所有方法了。

人气教程排行