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

  • 相关阅读:
    Leetcode OJ: Rotate List
    Leetcode OJ: Reverse Words in a String
    Effective C++读书笔记
    word改变下划线与文字的距离
    sql 取出表中不重复的值
    Iso文件用utrliso怎么安装
    Spring注入aspectJ切面
    Spring中利用java注解声明切面
    Spring面向切面编程
    spring中部分异常
  • 原文地址:https://www.cnblogs.com/zhuxiaojie/p/5048884.html
Copyright © 2020-2023  润新知