zoukankan      html  css  js  c++  java
  • js的apply方法使用详解,绝对NB

    情况1:

    作为函数调用

    var yazi={
        jiao:function(){
            var ji=function(){
                console.log(this);
            }
            ji();
        }
    }
    yazi.jiao();//window

    function jiao(){

      console.log(this);

    }

    jiao();//window

    当一个函数并非一个对象的属性时,那么它就是被当做函数来调用的。在此种模式下,this被绑定为全局对象,在浏览器环境下就是window对象

    2.方法调用式

    var yazi={

      jiao:function(){

        console.log(this);

      }

    }

    yazi.jiao();//yazi

    当函数被保存为一个对象的属性时,它就可称为这个对象的方法。当一个方法被调用时,this被绑定到这个对象上。如调用表达式包含一个提取属性的动作

    3.构造函数式

    function person(){

        name:'hanhongshuai';

      sleep:function(){

        console.log(this.name);

      }

    }

    new person.sleep();

    如果在一个函数前面加上new关键字来调用,那么就会创建一个连接到该函数的prototype成员的新对象,同时,this会被绑定到这个新对象上

    4.apply,call方法模式:

    var yazi={

       shengyin:'嘎嘎';

       jiao:function(){

        console.log(this.shengyin);

      }

    }

    var ji={shengyin:'jiji';}

    yazi.jiao.call(ji);//jiji

    js中,函数也是对象,所有函数对象都有两个方法:apply和call,这两个方法可以让我们构建一个参数数组传递给调用函数,允许我们改变this的值

  • 相关阅读:
    mysql 严格模式 Strict Mode
    PHP中NULL和‘'的区别
    nginx 出现413 Request Entity Too Large问题的解决方法
    mysql 转换NULL数据方法
    mysql大小写敏感配置
    mysql导入大批量数据出现MySQL server has gone away的解决方法
    mysql函数concat与group_concat使用说明
    Linux下aMule安装教程
    四、YOLO-V1原理与实现(you only look once)
    tf.cast(ndarray,dtype)
  • 原文地址:https://www.cnblogs.com/hhs6880/p/6638880.html
Copyright © 2011-2022 走看看