首页 > 其他分享 >Apply的理解

Apply的理解

时间:2022-09-30 17:02:49浏览次数:55  
标签:name 理解 context Apply myCall fn 函数

Apply 和 Call一样在 函数调用的时候会改变函数内的this指向,让this变成 Apply或Call的第一个参数。

举个例子:

 var ObjEngineer = {
    name:'程序员努力的一天',
    age:19
 };

 function fn2() {
     console.log(this.name);
 }

fn2.Apply(ObjEngineer )

输出:
   程序员努力的一天

是不是感觉 this.name 的值被 ObjEnginner中的 name给覆盖了呢,就是的。

解刨一下原理:

自定一个 myCall吧,把 myCall 挂载到 Function上,这样每个函数都可以使用myCall

Function.prototype.myCall = function(context){ 
    context.fn = this; //这里的this是指谁调用 myCall 就指向谁,比如: b.myCall ,这个 this 就指向 b
    context.fn();
    delete context.fn;
 }

上面代码是先给context对象添加一个 fn的函数,把外面调用 myCall的函数传给 fn, 当 fn() 执行完之后就可以把他删除掉了不用了。 

 

标签:name,理解,context,Apply,myCall,fn,函数
From: https://www.cnblogs.com/youmingkuang/p/16745448.html

相关文章

  • 理解main方法语法
    1深入理解main方法2特别提示在main()方法中,我们可以直接调用main方法所在类的静态方法或静态属性。但是,不能直接访问该类中的非静态成员,必须创建该类的一个......
  • sqlserver 之 CROSS apply
    CROSSapply作用:两张表直接连接,不需要任何的关联条件,产生的结果就是这两张表的笛卡儿集。相当于:select*fromtableA,tableB。 使用场景:如果查询结果集需要用到表值函......
  • Linux安全之SELinux理解
    ​​安全增强式Linux​​​,即​SELinux​(Security-EnhancedLinux)是一个 ​Linux​ 内核的安全模块,其提供了访问控制安全策略机制,包括了强制访问控制(MandatoryAccess......
  • 【CV算法理解】SORT(Simple Online and Realtime Tracking)跟踪算法理解
      SORT 是一种简单的在线实时多目标跟踪算法。文章要点为:以IoU作为前后帧间目标关系度量指标;利用卡尔曼滤波器预测当前位置;通过匈牙利算法关联检测框到目标;应......
  • 基于2.5/3D的自主主体室内场景理解研究
    参考链接:https://arxiv.org/abs/1803.03352主要内容摘要随着低成本、紧凑型2.5/3D视觉传感设备的出现,计算机视觉界对室内环境的视景理解越来越感兴趣。本文为本课题的研究提......
  • 反射-理解Class类并获取Class实例
    反射-理解Class类并获取Class实例一、class类介绍在Object类中定义了以下的方法,此方法将被所有子类继承publicfinalnativeClass<?>getClass();getClass方法返......
  • (int   *)&i 与int   increment(int   *   &   i) 相关理解的整理
    Q1:#include"stdio.h"voidmain(){inti[]={2,3};int*j=i;int**k=&j;//双指针,正确;int*p=NULL;//k=&i;//i就表示一个数组地址,&......
  • Android Telephony原理解析与开发指南 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1KquarYDUwgixgx4u9vhsFA点击这里获取提取码 ......
  • 传参类型的通俗理解
    首先,在java中,所有的参数传递都是值传递在C,C++中的各种传参方式:值传递相当于传递变量的一个替身给函数,原变量和替身不共用内存地址,函数对替身的操作不会影响原变量......
  • 委托/事件/线程传参简单理解
    写了很多代码,但几乎都没写过委托/事件/线程传参方面应用的代码因此自己总很容易理解后又遗忘今天又重温了一下因此以最简单的方式的代码方式写下来帮助理解1.线程传参[简单......