• 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,代表着一个对象,如果需要对象来执行这个方法的时候,就需要写,否则的话,参数可以不写

  • 相关阅读:
    SQL综合练习(一)
    数据探索及数据处理&文本数据的处理(二)
    数据探索及数据处理&文本数据的处理(一)
    交叉验证cross_validation
    优惠券预测——特征工程
    优惠券预测——数据探索2
    优惠券预测——数据探索1
    C盘扩容
    tracert在网络中的使用
    网络故障篇
  • 原文地址:https://www.cnblogs.com/zhuxiaojie/p/5048884.html
Copyright © 2020-2023  润新知