<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        js中call()和apply()改變指針問題的講解

        來源:懂視網 責編:小采 時間:2020-11-27 22:02:03
        文檔

        js中call()和apply()改變指針問題的講解

        js中call()和apply()改變指針問題的講解:1. 每個函數都包含兩個非繼承而來的方法:call()方法和apply()方法。(天生的) 2. 相同點:這兩個方法的作用是一樣的。 都是在特定的作用域中調用函數,等于設置函數體內this對象的值,以擴充函數賴以運行的作用域。 一般來說,this總是指向調用某個方
        推薦度:
        導讀js中call()和apply()改變指針問題的講解:1. 每個函數都包含兩個非繼承而來的方法:call()方法和apply()方法。(天生的) 2. 相同點:這兩個方法的作用是一樣的。 都是在特定的作用域中調用函數,等于設置函數體內this對象的值,以擴充函數賴以運行的作用域。 一般來說,this總是指向調用某個方

        call有兩個妙用:

      1.           1: 繼承。
      2.           2: 修改函數運行時的this指針。
      3. 區別:call和apply的區別在于call的第二個參數可以是任意類型,而apply的第二個參數必須是數組或者arguments

        <script>
         //一般來說,this總是指向調用某個方法的對象,但是使用call()和apply()方法時,就會改變this的指向。
         /*
         call方法:
         語法:call(thisObj,arg1,arg2,……,argN)
         定義:調用一個對象的一個方法,以另一個對象替換當前對象
         參數
         thisObj;可選項,將被用作當前對象的對象
         arg1,arg2,……,argN;可選項,將被傳遞方法參數序列
         說明
         call方法可以用來代替另一個對象調用一個方法。call方法可將一個函數的對象上下文從初始的上下文改變為有thisObj指定的新對象。
         
         如果沒有提供thisObj參數,那么Global對象被用作thisObj
         */
         /*
         apply方法:
         語法:apply(thisObj,[arg1,arg2,……,argN])
         定義:應用某一個對象的一個方法,用另一個對象替換當前對象
         */
         //區別:call和apply的區別在于call的第二個參數可以是任意類型,而apply的第二個參數必須是數組或者arguments
         //1.
         function add(a,b) {
         console.log(a+b);
         }
         function sub(a,b) {
         console.log(a-b);
         }
         add.call(sub,3,1);//用add來替換sub,add.call(sub,3,1)==add(3,1),結果是console.log(4);
         //2.
         function Animal(){
         this.name="Animal";
         this.showName=function(){
         alert(this.name);
         }
         }
         function Cat(){
         this.name="Cat";
         }
         var animal=new Animal();
         var cat=new Cat();
         animal.showName.call(cat);
         // 通過call或者apply方法,將原本屬于Animal對象的showName()方法交給對象cat來使用。
        結果為alert("Cat"); //3. function Animal(name){ this.name=name; this.showName=function(){ alert(this.name); } } function Cat(name){ Animal.call(this,name); } var cat=new Cat("Black Cat"); cat.showName(); //Animal.call(this)的意思是使用Animal對象代替this對象,那么Cat中就有了Animal的所有方法和屬性了,Cat對象就能直接調用Animal的方法和屬性了。 //4. function Class10(){ this.showSub=function(a,b){ alert(a-b); } } function Class11(){ this.showAdd=function(a,b){ alert(a+b); } } function Class2(){ Class10.call(this); Class11.call(this); } //使用兩個call就實現多繼承了。 </script>

        總結

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        js中call()和apply()改變指針問題的講解

        js中call()和apply()改變指針問題的講解:1. 每個函數都包含兩個非繼承而來的方法:call()方法和apply()方法。(天生的) 2. 相同點:這兩個方法的作用是一樣的。 都是在特定的作用域中調用函數,等于設置函數體內this對象的值,以擴充函數賴以運行的作用域。 一般來說,this總是指向調用某個方
        推薦度:
        標簽: call js 指針
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 成人网站免费观看| 免费一级特黄特色大片在线| 日韩精品在线免费观看| 久久99精品视免费看| 四虎永久在线精品免费观看视频| 老司机永久免费网站在线观看| 免费在线看片网站| 亚洲?v女人的天堂在线观看| 国产成人无码a区在线观看视频免费| 日本精品人妻无码免费大全| 午夜免费福利影院| 久久精品国产亚洲5555| 国产亚洲精品国产| 一区二区无码免费视频网站| 午夜视频在线观看免费完整版| 又色又污又黄无遮挡的免费视| 亚洲综合无码AV一区二区| 亚洲色四在线视频观看| 色婷婷亚洲一区二区三区| 中文字幕免费在线看线人动作大片| 国产成人精品一区二区三区免费| 91av免费观看| 免费一级肉体全黄毛片| 亚洲视频在线播放| 国产精品亚洲精品爽爽| 91视频免费网站| 国产成人免费福利网站| 久久精品国产亚洲av麻豆色欲| 亚洲欧美国产欧美色欲| 日本道免费精品一区二区| 免费黄网在线观看| 亚洲欧洲国产成人精品| 三上悠亚在线观看免费| 亚洲国产精品毛片av不卡在线 | 最好2018中文免费视频| 久久精品国产96精品亚洲| 亚洲成a人片在线观看无码专区| 亚洲一区二区三区写真| 免费大片黄在线观看yw| 久久亚洲私人国产精品| 无码人妻精品中文字幕免费|