JavaScript中以一個方法作為參數的寫法


前言,我們寫js的時候,經常會看到一些方法,比如說:

$("#ids").click(function(
      alert("Click me");
));

----------------------------------------------------

$.ajax({
    url:url,
    success:function(data){
         alert("SUCCESS");        
    },
    error:function(e){
          alert("ERROR");
    }
});

又或者說

var http = new XMLHttpRequest();
http.onreadystatechange = go;
........

function go(){
    alert();
}

 

大家應該會看到一個特點,這里面的js,都是以一個方法作為參數的,那么,它是怎么實現的呢?

 

 

一:以方法作為參數

這下來說直接以一個方法來作為參數的寫法,直接上代碼:

-----------這樣調用的方法-------------
go(function(){
    alert("success");
});

那么,這樣直接以一個function作為參數,那么go方法要如接收呢?

-------------以這樣的形式接收並調用,這里顯示兩種方法調用-----------------
function
go(fn){ alert("執行go方法");
   //下面兩種方式都可以 fn(); fn.call(this); }

 

二:以方法名作為參數

如果參數里面是一個方法的名稱,在我拿到這個方法名稱的時候,我要如何去調用這個方法呢?

-------------------調用的方式是這樣的---------------------
go("hello");//hello是一個方法名稱

接收並執行的方式是這樣的

-----------------接收並執行------------------
function go(fn){
     alert("執行hello方法")
        //這是調用方法
    window[fn].call(this);
}

我們可以拿到window[方法名稱].call(this);

里面的this,代表着一個對象,如果需要對象來執行這個方法的時候,就需要寫,否則的話,參數可以不寫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM