对call深入浅出的李姐

李姐?李姐是谁?为什么要call深入浅出???怎么深入浅出的???(此处省略一万次。。。字)

首先我们应该先了解call是用来干什么的:

八股文:call是用来显式绑定函数的this指向的。
人话:call是用来改变的this指向的。(以前小的时候人话我都听不懂)
函数的this永远指向调用它的对象!!!

let obj={lijie:function(){console.log(this)}
}
obj.lijie()

上面这个this就很明显指向的是obj打印出来也应该是obj,但是现在我们有了一个obj1对象(下图)按照上面说的我们obj.lijie()调用this指向的是obj可是,obj里面是王姐我们不想被王姐深入浅出只想被李姐深入浅出怎么办呢?这是call出来了,带着李姐向你们走来了obj.lijie().call(obj1)就能完美解决这个问题投入李姐的怀抱中去。

let obj={name:'王姐',lijie:function(){console.log(this.name)}
}
let obj1={name:'李姐'
}
obj.lijie()
obj.lijie().call(obj1)

把我们上面说的东西整合一下,函数this指向的是调用它的对象,那想让this指向另外一个对象让另外一个对象调用他不就好了嘛。

手写call函数

//手写call调用
Function.prototype.Call = function (context, ...args) {//先判断context是否为空,为空时context指向windowif (context == null || context == undefined) {context = window;}//使用Symbol函数创建一个唯一个key值,避免冲突let fn = Symbol();//console.log(this);这里的this指向调用了Call函数的方法??深度思考这里的this为什么会等于调用了Call函数的方法context[fn] = this;//使用隐式this在context中调用方法let res = context[fn](...args);//调用之后删除新加的属性;delete context[fn];return res;
}

对call深入浅出的李姐相关推荐

  1. Python --深入浅出Apriori关联分析算法(二) Apriori关联规则实战

    上一篇我们讲了关联分析的几个概念,支持度,置信度,提升度.以及如何利用Apriori算法高效地根据物品的支持度找出所有物品的频繁项集. Python --深入浅出Apriori关联分析算法(一) 这次 ...

  2. MSDN Webcast“深入浅出ASP.NET AJAX系列”

    课程: ASP.NET AJAX深入浅出系列课程(1):ASP.NET AJAX 概述(3月13日):对于ASP.NET AJAX的大致功能进行概述和演示,通过简单的演示让听众了解到ASP.NET A ...

  3. 5.3Role和Claims授权「深入浅出ASP.NET Core系列」

    5.3Role和Claims授权「深入浅出ASP.NET Core系列」 原文:5.3Role和Claims授权「深入浅出ASP.NET Core系列」 希望给你3-5分钟的碎片化学习,可能是坐地铁. ...

  4. 深入浅出开源性能测试工具 Locust (使用篇 1)

    在<[LocustPlus序]漫谈服务端性能测试>中,我对服务端性能测试的基础概念和性能测试工具的基本原理进行了介绍,并且重点推荐了Locust这一款开源性能测试工具.然而,当前在网络上针 ...

  5. 《深入浅出iPhone/iPad开发(第2版)》——在Xcode中建立你的界面

    本节书摘来自异步社区<深入浅出iPhone/iPad开发(第2版)>一书中的在Xcode中建立你的界面,作者 [美]Dan Pilone , Tracey Pilone,更多章节内容可以访 ...

  6. 【组队学习】【35期】深入浅出Pytorch

    深入浅出Pytorch 航路开辟者:李嘉骐.牛志康.刘洋.陈安东 领航员:朱松青 航海士:管柯琴.宋泽山.林旭升 基本信息 开源内容:https://github.com/datawhalechina ...

  7. 深入浅出Pytorch:02 PyTorch基础知识

    深入浅出Pytorch 02 PyTorch基础知识 内容属性:深度学习(实践)专题 航路开辟者:李嘉骐.牛志康.刘洋.陈安东 领航员:叶志雄 航海士:李嘉骐.牛志康.刘洋.陈安东 开源内容:http ...

  8. 深入浅出Pytorch:01 课程大纲与PyTorch简介

    深入浅出Pytorch 01 课程大纲与PyTorch简介 内容属性:深度学习(实践)专题 航路开辟者:李嘉骐.牛志康.刘洋.陈安东 领航员:叶志雄 航海士:李嘉骐.牛志康.刘洋.陈安东 开源内容:h ...

  9. 今晚8点直播 | 深入浅出理解A3C强化学习

    强化学习是一种比较传统的人工智能手段,在近年来随着深度学习的发展,强化学习和深度学习逐渐结合在了一起.这种结合使得很多原来无法想象的工作有了可能,最令我们瞩目的莫过于AlphaGo战胜李世石,以及Op ...

最新文章

  1. Careercup - Google面试题 - 5424071030341632
  2. optee3.14.0 qemu_v8的环境搭建篇
  3. xcode 证书生成、加载
  4. 一文抽丝剥茧带你掌握复杂Gremlin查询的调试方法
  5. matlab小区制移动通信网,LTE习题 - 无线移动 - 通信人家园 - Powered by C114
  6. mysql 合并相加_mysql 多条记要判断相加减合并一条
  7. (六)api网关服务 zuul-过滤器
  8. ASP.NET MVC学习
  9. 客户机容易随机出现自动重启、游戏卡问题?不妨优化下BIOS中节能技术!
  10. 如何成为优秀的技术人员
  11. 软媒魔方5.13发布:制作U盘启动,更快速
  12. 油猴脚本使用方法与管理插件方法+开发插件与安装插件的方法
  13. 苏轼《汲江煎茶》| 茶学经典
  14. 弹性力学,塑性力学,流变学,连续介质力学,断裂力学,流体力学基本定义及关系
  15. 使用webpack将ES6转化ES5, Browerify
  16. Googlenet v1、v2、v3、v4区别
  17. DIY申请达姆施塔特工业大学计算机专业(Informatik)硕士(Master)【附个人简历和动机信】...
  18. 状态压缩dp学习小记part2
  19. 盖茨18年首富成就福布斯神话 揭示盖茨不为人知的秘密
  20. 什么是垃圾回收机制(GC)

热门文章

  1. 计蒜客2018蓝桥杯省赛B组模拟赛(一)题目及解析
  2. 电脑版终于来了:不限速,支持单个30G大文件上传
  3. 手机号加座机号码正则表达式
  4. 百度将全面开放智能小程序申请,淘金者请做好“迁徙”准备
  5. 黑客技术之移花接木(劫持)
  6. 接入百度大脑手写文字识别为企业降本增效
  7. 计算直线与平面的交点
  8. 【工具】AlibabaPuHuiTi 阿里巴巴 普惠体 字体windows安装
  9. fail to load driver class oracle.jdbc.driver.OracleDriver in eitherofHIkariConfig class loader
  10. 气液平衡matlab,气液平衡 实验报告.doc