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的值

  • 相关阅读:
    java操作docker示例(docker-java)
    istio实现对外暴露服务
    istio实现自动sidecar自动注入(k8s1.13.3+istio1.1.1)
    k8s1.13.3安装istio(helm方式)
    wrk http压测工具介绍
    etcd 相关介绍
    openresty 常用API学习
    Lua 相关知识点
    Lua 获取table的长度
    Lua 字符串相关操作
  • 原文地址:https://www.cnblogs.com/hhs6880/p/6638880.html
Copyright © 2011-2022 走看看