陆zy 2021-08-26 13:56 采纳率: 66.7%
浏览 22

关于手写call的疑惑

如图,红框内保存this为对象的属性,
接着返回调用赋值参数后的对象属性,
这里有点不大懂
不大懂是怎么改变this指向的同时,确保参数不是传给context的

img

  • 写回答

1条回答 默认 最新

  • MINO吖 2021-08-31 16:42
    关注

    通过如下方式调用你的myCall方法的话:

    fnA.myCall(obj, params);
    

    红框第一行:this表示的是fnA这个函数,将fnA赋值给context[fn]上;
    红框第二行:

    • 将context[fn]执行,即执行fnA;因为call的目的为了修改fbA函数中this的指向,所以通过context[fn]执行相当于obj.fnA(),修改了fnA内的this指向obj;
    • 如果不使用context[fn]执行,而是使用this(),就相当于是fnA();这样的话fnA内的this指向并没有发生变化;
    评论

报告相同问题?

问题事件

  • 创建了问题 8月26日

悬赏问题

  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
  • ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
  • ¥15 io.jsonwebtoken.security.Keys
  • ¥15 急,ubuntu安装后no caching mode page found等
  • ¥15 联想交换机NE2580O/NE1064TO安装SONIC
  • ¥15 防火墙的混合模式配置
  • ¥15 Ubuntu不小心注销了要怎么恢复啊
  • ¥15 win10电脑安装完plcsim advanced4.0运行时为什么会提示找不到虚拟网卡