简单理解Javascript中的call 和 apply
程序员文章站
2022-04-06 12:47:49
...
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下的所有方法了。
推荐阅读
-
javascript中apply、call和bind的使用区别
-
JavaScript中的apply()方法和call()方法使用介绍_javascript技巧
-
JavaScript中的apply/call/bind和this
-
JavaScript中的call方法和apply方法使用对比
-
js中call()和apply()改变指针问题的讲解
-
浅谈JavaScript中的apply/call/bind和this的使用
-
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
-
深入理解JavaScript 中的执行上下文和执行栈
-
JavaScript中的call和apply的用途以及区别
-
有关JavaScript中call()和apply() 的一些理解