最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年01月17日 14:24:41   作者:muzidigbig  
今天小編就為大家分享一篇關(guān)于js中call()和apply()改變指針問題的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

1. 每個函數(shù)都包含兩個非繼承而來的方法:call()方法和apply()方法。(天生的)

2. 相同點(diǎn):這兩個方法的作用是一樣的。

都是在特定的作用域中調(diào)用函數(shù),等于設(shè)置函數(shù)體內(nèi)this對象的值,以擴(kuò)充函數(shù)賴以運(yùn)行的作用域。

一般來說,this總是指向調(diào)用某個方法的對象,但是使用call()和apply()方法時,就會改變this的指向。

call有兩個妙用:

  •           1: 繼承。
  •           2: 修改函數(shù)運(yùn)行時的this指針。

區(qū)別:call和apply的區(qū)別在于call的第二個參數(shù)可以是任意類型,而apply的第二個參數(shù)必須是數(shù)組或者arguments

<script>
  //一般來說,this總是指向調(diào)用某個方法的對象,但是使用call()和apply()方法時,就會改變this的指向。
  /*
  call方法:
  語法:call(thisObj,arg1,arg2,……,argN)
  定義:調(diào)用一個對象的一個方法,以另一個對象替換當(dāng)前對象
  參數(shù)
    thisObj;可選項(xiàng),將被用作當(dāng)前對象的對象
    arg1,arg2,……,argN;可選項(xiàng),將被傳遞方法參數(shù)序列
  說明
    call方法可以用來代替另一個對象調(diào)用一個方法。call方法可將一個函數(shù)的對象上下文從初始的上下文改變?yōu)橛衪hisObj指定的新對象。
  
  如果沒有提供thisObj參數(shù),那么Global對象被用作thisObj
  */
  /*
  apply方法:
  語法:apply(thisObj,[arg1,arg2,……,argN])
  定義:應(yīng)用某一個對象的一個方法,用另一個對象替換當(dāng)前對象
  */
  //區(qū)別:call和apply的區(qū)別在于call的第二個參數(shù)可以是任意類型,而apply的第二個參數(shù)必須是數(shù)組或者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),結(jié)果是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來使用。結(jié)果為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對象就能直接調(diào)用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就實(shí)現(xiàn)多繼承了。
</script>

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • csdn 博客的css樣式 v3

    csdn 博客的css樣式 v3

    僅相隔一天就出了個v3。 修正了一個bug,firefox左側(cè)內(nèi)容寬度錯誤。
    2009-02-02
  • webpack dll打包重復(fù)問題優(yōu)化的解決

    webpack dll打包重復(fù)問題優(yōu)化的解決

    在使用dll plugin過程中出現(xiàn)的一個包依賴問題,這個問題導(dǎo)致打出來的包會包含重復(fù)的代碼。這篇文章主要介紹了webpack dll打包重復(fù)問題優(yōu)化的解決,感興趣的小伙伴們可以參考一下
    2018-10-10
  • webpack打包進(jìn)度展示以及美化教程

    webpack打包進(jìn)度展示以及美化教程

    webpack 是一個現(xiàn)代 JavaScript 應(yīng)用程序的靜態(tài)模塊打包器(module bundler),下面這篇文章主要給大家介紹了關(guān)于webpack打包進(jìn)度展示以及美化的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • JS基于clipBoard.js插件實(shí)現(xiàn)剪切、復(fù)制、粘貼

    JS基于clipBoard.js插件實(shí)現(xiàn)剪切、復(fù)制、粘貼

    這篇文章主要介紹了JS實(shí)現(xiàn)剪切、復(fù)制、粘貼——clipBoard.js 的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • js+canvas實(shí)現(xiàn)可自動吸附閉合的鼠標(biāo)繪制多邊形

    js+canvas實(shí)現(xiàn)可自動吸附閉合的鼠標(biāo)繪制多邊形

    這篇文章主要為大家詳細(xì)介紹了js+canvas實(shí)現(xiàn)可自動吸附閉合的鼠標(biāo)繪制多邊形,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • js中for in語句的用法講解

    js中for in語句的用法講解

    這篇文章主要介紹了js中for in語句的用法講解,本文用多個實(shí)例講解了for in語句的用法及適合場景,需要的朋友可以參考下
    2015-04-04
  • 一文詳解JavaScript?如何將?HTML?轉(zhuǎn)成?Markdown

    一文詳解JavaScript?如何將?HTML?轉(zhuǎn)成?Markdown

    這篇文章主要介紹了一文詳解JavaScript如何將HTML轉(zhuǎn)成Markdown,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 微信小程序?qū)崿F(xiàn)拍照和相冊選取圖片

    微信小程序?qū)崿F(xiàn)拍照和相冊選取圖片

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)拍照和相冊選取圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 使用命令對象代替switch語句的寫法示例

    使用命令對象代替switch語句的寫法示例

    這篇文章主要介紹了使用命令對象代替switch語句的寫法示例,JS規(guī)范里面是禁止使用switch語句的,使用命令對象可以完美的解決這個問題,需要的朋友可以參考下
    2015-02-02
  • 微信小程序?qū)崿F(xiàn)電子簽名

    微信小程序?qū)崿F(xiàn)電子簽名

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)電子簽名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06

最新評論

南丹县| 北票市| 平阳县| 象山县| 尚义县| 吐鲁番市| 土默特右旗| 阜新| 英超| 龙山县| 乌什县| 永州市| 宁波市| 奉贤区| 南投市| 蓝田县| 于田县| 宁明县| 曲靖市| 普安县| 醴陵市| 涪陵区| 武定县| 京山县| 湘潭市| 襄城县| 来凤县| 桦甸市| 潞西市| 岢岚县| 平利县| 六枝特区| 贵溪市| 蒲城县| 保康县| 庄浪县| 洪江市| 延吉市| 灌阳县| 上杭县| 莎车县|