茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    關于JS中的apply,call,bind的深入解析
    來源:易賢網 閱讀:863 次 日期:2016-07-08 15:12:33
    溫馨提示:易賢網小編為您整理了“關于JS中的apply,call,bind的深入解析”,方便廣大網友查閱!

    在Javascript中,F(xiàn)unction是一種對象。Function對象中的this指向決定于函數被調用的方式。使用apply,call 與 bind 均可以改變函數對象中this的指向,在說區(qū)別之前還是先總結一下三者的相似之處:

    1、都是用來改變函數的this對象的指向的。

    2、第一個參數都是this要指向的對象。

    3、都可以利用后續(xù)參數傳參。

    call方法: 

    語法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 

    定義:調用一個對象的一個方法,以另一個對象替換當前對象。 

    說明:call 方法可以用來代替另一個對象調用一個方法。call 方法可將一個函數的對象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對象。 

    如果沒有提供 thisObj 參數,那么 Global 對象被用作 thisObj。

    apply:

    語法:apply(thisObj,數組參數)

    定義:應用某一個對象的一個方法,用另一個對象替換當前對象

    說明:如果參數不是數組類型的,則會報一個TypeError錯誤。

    bind:

    在EcmaScript5中擴展了叫bind的方法(IE6,7,8不支持),bind與call很相似,,例如,可接受的參數都分為兩部分,且第一個參數都是作為執(zhí)行時函數上下文中的this的對象。不同點有兩個:

    ①bind的返回值是函數;②后面的參數的使用也有區(qū)別;

    先看例子一:

    function add(a, b) {

      alert(a + b);

    }

    function sub(a, b) {

      alert(a - b);

    }

    對于,call,可以這么用:

    add.call(sub,3,1);結果為4

    對于,apply,可以這么用;

    add.apply(sub,[3,1]);結果為4

    對于,bind,可以這么用:

    add.bind(sub)(3,1);結果為4

    可以看到輸出結果都一樣,但是傳參用法不一樣;

    再看例子二:

    function jone(name,age,work){

      this.name=name;

      this.age=age;

      this.work=work;

      this.say=function(msg){

        alert(msg+",我叫"+this.name+",我今年"+this.age+"歲,我是"+this.work)

      }

    }

    var jack={

      name:"jack",

      age:'24',

      work:"學生"

    }

    var pet=new jone();

    pet.say.apply(jack,["歡迎您"])

    console.log(this.name)

    對于call,需要這樣:

    pet.say.call(jack,"歡迎您!")

    對于apply,需要這樣:

    pet.say.apply(jack,["歡迎您!"])

    對于bind,需要這樣:

    pet.say.bind(jack,"歡迎您")()

    此時輸出console.log(this.name),發(fā)現(xiàn)this.name為jack,this上下文已經發(fā)生改變了;

    以上這篇關于JS中的apply,call,bind的深入解析就是小編分享給大家的全部內容了,希望能給大家一個參考

    更多信息請查看網絡編程
    易賢網手機網站地址:關于JS中的apply,call,bind的深入解析

    2026上岸·考公考編培訓報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網