zoukankan      html  css  js  c++  java
  • apply和call的区别

    /*apply()方法*/
    function.apply(thisObj[, argArray])
    
    /*call()方法*/
    function.call(thisObj[, arg1[, arg2[, [,...argN]]]]);

    共同点:都是thisObj调用function的方法
    不同点:apply只能接收一个参数,且必须为数组,
        call可以接收多个参数

    作用:

    示例代码:

    (1)基本用法

    function sub(a,b){
      return a-b;
    }
    var a1 = add.apply(sub,[4,2]);  //sub调用add的方法
    alert(a1); //6
    var a1 = add.call(sub,4,2);     /*call的用法*/
    (2)实现继承

    function Animal(name){
      this.name = name;
      this.showName = function(){
        alert(this.name);
      }
    }

    function Cat(name){
      Animal.apply(this,[name]);
    }

    var cat = new Cat("咕咕");
    cat.showName();

    /*call的用法*/
    Animal.call(this,name);
     (3)多重继承
    function Class10(){
      this.showSub = function(a,b){
        alert(a - b);
      }
    }

    function Class11(){
      this.showAdd = function(a,b){
        alert(a + b);
      }
    }

    function Class12(){
      Class10.apply(this);
      Class11.apply(this);
      // Class10.call(this);
      //Class11.call(this);
    }

    var c2 = new Class12();
    c2.showSub(3,1); //2
    c2.showAdd(3,1); //4

    参考:原文链接:https://blog.csdn.net/sinat_19803127/article/details/80280761

  • 相关阅读:
    代理工具介绍
    Cookie 相关
    在JavaScript 使用命名空间
    oracle rank()用法
    sql update 特殊用法
    Repeat 嵌套绑定
    .net 中隐式事务和显示事务的用法
    为站点添加迅雷下载和快车下载
    缺少MSVCR71.DLL解决方式
    关于AppFabric Caching的学习摘录
  • 原文地址:https://www.cnblogs.com/hsmWorld/p/11506708.html
Copyright © 2011-2022 走看看