通俗易懂的call和apply方法
技术文章写的不够通俗易懂,和咸鱼有什么区别。
<script>
/* 先总结:
其实,可以统一理解为 xx.aaply(yy,参数*) 是将方法xx传给yy。
执行的永远是xx。
*/
//1:替代subs,执行add
function add(a,b){
alert(a+b);
}
function subs(a,b){
alert(a-b);
}
add.call(subs,5,3); //这里弹出8 (add替代了subs)
//2:传递showName,执行showName
function animal(){
this.name = "ani";
this.showName = function(){
alert(this.name);
}
}
function cat(){
this.name = "cat";
}
var an = new animal();
var c = new cat();
an.showName.call(c,"因为没有参数,随便参数");
an.showName.apply(c,[])
//本来c是没有showname()方法的。call和apply把方法传递给c,并且执行
来一个小的知识点练习:
任务
- 定义两个数组,每个数组中不少于两个元素。
- 使用apply方法,把第二个数组中的元素加入到第一个数组中。
- 弹出数组arr1,检验结果。
有纰漏或者想法,欢迎交流。
阅读 476
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。