• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

    js中apply與call簡(jiǎn)單用法詳解

    來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:26:13
    文檔

    js中apply與call簡(jiǎn)單用法詳解

    js中apply與call簡(jiǎn)單用法詳解:你可以直接看例子,也可以先讀一下介紹: call和apply是為了動(dòng)態(tài)改變this而出現(xiàn)的,當(dāng)一個(gè)object沒有某個(gè)方法,但是其他的有,我們可以借助call或apply用其它對(duì)象的方法來操作。 call, apply都屬于Function.prototype的一個(gè)方法,它是JavaSc
    推薦度:
    導(dǎo)讀js中apply與call簡(jiǎn)單用法詳解:你可以直接看例子,也可以先讀一下介紹: call和apply是為了動(dòng)態(tài)改變this而出現(xiàn)的,當(dāng)一個(gè)object沒有某個(gè)方法,但是其他的有,我們可以借助call或apply用其它對(duì)象的方法來操作。 call, apply都屬于Function.prototype的一個(gè)方法,它是JavaSc

    你可以直接看例子,也可以先讀一下介紹:

    call和apply是為了動(dòng)態(tài)改變this而出現(xiàn)的,當(dāng)一個(gè)object沒有某個(gè)方法,但是其他的有,我們可以借助call或apply用其它對(duì)象的方法來操作。

    call, apply都屬于Function.prototype的一個(gè)方法,它是JavaScript引擎內(nèi)在實(shí)現(xiàn)的,因?yàn)閷儆贔unction.prototype,所以每個(gè)Function對(duì)象實(shí)例,也就是每個(gè)方法都有call, apply屬性.既然作為方法的屬性,那它們的使用就當(dāng)然是針對(duì)方法的了.這兩個(gè)方法是容易混淆的,因?yàn)樗鼈兊淖饔靡粯?只是使用方式不同.
    從上面可以得出 call, apply 是給方法使用的,為了改變調(diào)用該方法的 this指針

    簡(jiǎn)單例子:

    call

    function A() {
     this.getName = function (xx) {
     return xx;
     }
    }
    
    function B() {
    
    }
    
    var a = new A();
    console.log( a.getName('i am A') ); //i am A
    
    var b = new B() ;
    console.log( a.getName.call(b,'i am B') ); // i am B
    
    

    B 函數(shù)中沒有 任何方法 , A 函數(shù)有個(gè) getName() 方法 ,a.getName() 自然成立 ,但 B 也要使用 getName() 的方法怎么辦呢 ? 那就用 call(this,'參數(shù)') !!

    可以 再理解一下這句話 -- 我們可以借助call或apply調(diào)用其它對(duì)象的方法來操作,call和apply是為了動(dòng)態(tài)改變this而出現(xiàn)的 ,本來 a.getName() 的 this 指向 a, call 動(dòng)態(tài)的 把 this 指向了 b ,變成了 b.getName()

    apply

    apply 與 call 只是參數(shù)的使用不同而已

    function A() {
     this.sun = function (a ,b) {
     return a+b;
     }
    }
    
    function B() {
    
    }
    
    var a = new A();
    console.log( a.sun(1,2) ); //3
    
    var b = new B() ;
    console.log( a.sun.call(b,2,2) ); // 4
    
    console.log( a.sun.apply(b,[3, 3]) ); //6
    
    

    call和apply一般使用情況

    用的比較多的,通過document.getElementsByTagName選擇的dom 節(jié)點(diǎn)是一種類似array的array。它不能應(yīng)用Array下的push,pop等方法。我們可以通過:

    var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));

    這樣domNodes就可以應(yīng)用Array下的所有方法了。

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    js中apply與call簡(jiǎn)單用法詳解

    js中apply與call簡(jiǎn)單用法詳解:你可以直接看例子,也可以先讀一下介紹: call和apply是為了動(dòng)態(tài)改變this而出現(xiàn)的,當(dāng)一個(gè)object沒有某個(gè)方法,但是其他的有,我們可以借助call或apply用其它對(duì)象的方法來操作。 call, apply都屬于Function.prototype的一個(gè)方法,它是JavaSc
    推薦度:
    標(biāo)簽: 用法 call js
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 日韩精品亚洲人成在线观看| 久久免费99精品国产自在现线| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 欧美精品免费在线| 99精品人妻少妇一区二区| 国产精品电影在线| 亚洲精品成a人在线观看| 狼色精品人妻在线视频| 国产精品无码午夜福利| 91国内揄拍国内精品情侣对白| 久久综合精品国产二区无码| 天天爽夜夜爽夜夜爽精品视频| 国产精品美女网站| 一区二区三区精品国产欧美| 亚洲精品国产电影| 国产午夜福利精品久久| 亚洲色精品vr一区二区三区| 2020国产精品永久在线| 国内精品久久久久影院网站| 自拍偷自拍亚洲精品第1页| 99精品国产一区二区三区| 国内精品久久久久国产盗摄| 999久久久国产精品| 欧美高清在线精品一区| 国产精品成人观看视频国产| 精品久久人人爽天天玩人人妻| 嫖妓丰满肥熟妇在线精品| 亚洲国产综合精品中文字幕| 四虎精品影库4HUTV四虎| 久久精品国产99久久久香蕉| 精品国内自产拍在线观看| 国产精品自产拍在线观看花钱看| 国产成人精品亚洲精品| 久久亚洲精品成人AV| 亚洲精品~无码抽插| 国产精品99无码一区二区| 国产成人无码精品久久久免费| 69堂午夜精品视频在线| 91精品国产91久久| 国产精品视频全国免费观看| 国产免费久久精品99久久|