zoukankan      html  css  js  c++  java
  • js 中的call,apply

    刷面试题,很大概率会碰到一个问题就是对call,apply的理解以及自己实现call的方法
    这总东西自己也看了很多,各种手写代码也收藏了不少,但是要自己去说说怎么理解的,我还真说不出来,其实就是自己对这个过程还不太理解,那可不就是说不出来吗,过段时间就忘了。

    其实,call或者apply,这两个方法的作用就是改变函数中this的指向,并写这个方法立即执行了。一般用在某个对象不存在一个方法,又不想自己去实现,就可以去借用其他的对象的这个方法,并且将人家方法里面的this变成自己,这,不就是白嫖吗,还有这么好的事,没错,call就可以实现这个梦想。
    那么自己实现这个方法就简单了,把步骤分解开
    1,执行这个借用的函数
    2,改变这个函数里面的this指向
    用一个最简单的写法就是下面这样:

    
    Fucntion.prototype.myCall=function(context){
    if(typeof this !== 'function'){
          throw new Error()
          return     
    }
    context.fn=this;
    var arbs=[...arguments].slice(1);
    var result = context.fn(...args);
    delete context.fn;
    return result
    
    }
    
    

    思路就是这样,不过呢,我这个还是写的不够好,后面看了人家写的,感觉会更严谨
    apply的思路和上面的一样。

  • 相关阅读:
    WebQQ2.0 PHP
    HTML文档类型 PHP
    字符●圆角 PHP
    IIS日志分析器 PHP
    JS 像素数字 PHP
    3DTagCloud3D标签云 PHP
    QQ截屏工具提取 PHP
    .NET嵌入DLL ILMerge工具应用 PHP
    JS CSS 压缩工具(GUI界面) PHP
    Javascript 函数初探
  • 原文地址:https://www.cnblogs.com/ysla/p/14187053.html
Copyright © 2011-2022 走看看