當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS函数方法Call Apply Bind运用
生活随笔
收集整理的這篇文章主要介紹了
JS函数方法Call Apply Bind运用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JS 函數非繼承的call和apply方法
同:call & apply 主要是用于擴展this指向,降低this作用域與函數之間的耦合度;
區別:傳參差異
function.call(this/object,params1,params2,...) 第一個參數為作用域指向參數,后邊參數如過存在多個必須分開書寫 復制代碼function.apply(this/object,[array]/arguments) 第一個參數為作用域指向參數,后邊參數是一個素組或者參數對象 復制代碼案列
let name="A"; let b={name:"B"} function alertInfo(){alert(this.name); } alertInfo.call();//彈框 A,this默認指向windows對象 alertInfo.apply();//彈框 A,this默認指向windows對象 復制代碼let name="A"; let b={name:"B"} function alertInfo(age){alert(this.name+age); } alertInfo.call(b,20);//彈框 B 20,this此時指向b對象 alertInfo.apply(b,20);//彈框 B 20,this此時指向b對象 復制代碼let name="A"; let b={name:"B"} function alertInfo(age,sex){alert(this.name+age); } alertInfo.call(b,20,'男');//彈框 B 20 男,this此時指向b對象 alertInfo.apply(b,20,'男');//錯誤:該方法接收array或者對象 復制代碼JS函數bind方法
該方法可用于創建一個函數實例,其this值會被bind綁定至該函數中
案列
let name="A"; let b={name:"B"} function alertInfo(){alert(this.name); } let initF=alertInfo.bind();//創建的函數實例 initF();//彈框 A,this默認指向windows對象 復制代碼let name="A"; let b={name:"B"} function alertInfo(){alert(this.name); } let initF=alertInfo.bind(b);//創建的函數實例 initF();彈框 B,this此時指向b對象 復制代碼總結
以上是生活随笔為你收集整理的JS函数方法Call Apply Bind运用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: =在 java中怎么表示_在Java中各
- 下一篇: cad转dxf格式文件太大_如何将DWG