當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript中call()和apply()的用法及区别
生活随笔
收集整理的這篇文章主要介紹了
JavaScript中call()和apply()的用法及区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
call(), apply()都屬于Function.prototype的一個方法。它們有相同點也有不同點。
相同點:
1、產生的效果和作用是完全相同的;
2、至少有一個參數,第一個參數必須是一個對象Object。
不同點:
二者傳遞參數的方式不同。call方法參數將依次傳遞給借用的方法作參數, 而apply是直接將這些參數放到一個數組中再傳遞。
使用方法:
fun.call(this,arg1,arg2);
說明:fun是一個已定義的方法,this是方法執行時上下文相關的對象,arg1,arg2是傳給fun方法的參數。
fun.apply(this,arguments); 或者
fun.apply(this,[arg1,arg2]);?
說明:arguments是直接用JavaScript方法內本身有的arguments數組。
簡單實例:
function add(num1,num2){alert(num1+num2);}//用call方法,參數按照add的參數傳遞function test1(num1,num2){add.call(this,num1,num2);}//用apply方法,參數作為一個數組傳遞function test2(){add.apply(this,arguments);}test1(2,7); //結果打印出9test2(2,7); //結果打印出9使用場景:
當參數明確的時候可以用call(),參數不明確的時候可以用apply()。
總結
以上是生活随笔為你收集整理的JavaScript中call()和apply()的用法及区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浏览器中遮罩层镂空效果的多种实现方法
- 下一篇: 移动端点击(click)事件延迟问题的产