zoukankan      html  css  js  c++  java
  • Call与apply的用法与区别

    Call方法:

    语法:call(thisObj,agr1,agr2,agr3..........)

    定义:调用一个对象的方法,以另一个对象替换当前对象。

    例子:

    1、add.call(sub,3,1);add方法来替换sub

    Apply方法:

    语法:apply(thisObj,agrArray)

    定义:应用某一对象的一个方法,用另一个对象替换当前对象。

    联系:这两个方法都能劫持另一个对象的的方法,继承另一个对象的属性。

    不同:参数列表不一样。

    解释:function.apply(obj,args)

    Obj:这个对象代替xxxfunction类里的this对象,即function类(函数)里的this不是指向function本身,而是指向obj

    args:这个数组类型参数,它将作为参数传递给function,结果还是执行function类方法的功能,只不过该function函数以另一个目标对象和一个数组作为参数传递进function函数,function里面的this是传进的目标对象,而不是function本身。

     

    实例:

    function Person(name,age,job){

         this.name=name;

     this.age=age;

     this.job=job;

         this.sayName=function(){

        alert(this.name);

     }

     }

    Var o=new Object();

    Person.call(0,”zhangsan”,20,”IT”);

    o.sayName();//”zhangsan”

    其实说白就是把Person放到o环境中执行,Personthis指向o对象;

    最后,欢迎各位大神指点!!!

  • 相关阅读:
    LeetCode 029 Divide Two Integers
    LeetCode 028 Implement strStr()
    Linux网络技术管理及进程管理
    RAID磁盘阵列及CentOS7系统启动流程
    Linux磁盘管理及LVM讲解(1)
    逻辑卷管理
    Linux磁盘管理及LVM讲解
    Linux计划任务及压缩归档
    Linux权限管理
    用户及用户组管理
  • 原文地址:https://www.cnblogs.com/hcw136156133/p/4112939.html
Copyright © 2011-2022 走看看