js源码(call):

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>function demo(){console.log(this);name = "2";}var obj = {name:'1',age:2,}Function.prototype.myCall = function(){// 1. 找出第一个参数 判断第一个参数是否为空 如果为空this还是指向windowvar target = arguments[0] || window;  //  短路运算var _arg = Array.from(arguments).slice(1);// 方法一:// console.log(this);  // this -> demotarget.fn = this;target.fn(..._arg);  // this -> target// 方法二:// fn.apply(target,_arg)}console.log(obj,);demo(); // windowdemo.myCall(obj,1,2,3,4,5,6);</script>
</body>
</html>

js源码分析(一)——Call相关推荐

  1. video.js 源码分析(JavaScript)

    video.js 源码分析(JavaScript) 组织结构 继承关系 运行机制 插件的运行机制 插件的定义 插件的运行 控制条是如何运行的 UI与JavaScript对象的衔接 类的挂载方式 存储 ...

  2. impress.js 源码分析

    impress.js 源码分析   之前做展示用幻灯片,我一直热衷于使用PPT,刚开始学习PPT时总是强行使用各种页面特效,越做越复杂.现在看来,学技术大概都要经历一个从简到繁再到简的过程吧.后来,无 ...

  3. Vue.js 源码分析(二十三) 指令篇 v-show指令详解

    v-show的作用是将表达式值转换为布尔值,根据该布尔值的真假来显示/隐藏切换元素,它是通过切换元素的display这个css属性值来实现的,例如: <!DOCTYPE html> < ...

  4. Vue.js 源码分析(九) 基础篇 生命周期详解

    先来看看官网的介绍: 主要有八个生命周期,分别是: beforeCreate.created.beforeMount.mounted.beforeupdate.updated   .beforeDes ...

  5. Vue.js 源码分析(五) 基础篇 方法 methods属性详解

    methods中定义了Vue实例的方法,官网是这样介绍的: 例如:: <!DOCTYPE html> <html lang="en"> <head&g ...

  6. 补环境:vm2 transformer.js 源码分析

    在补环境框架的文件夹里执行 vm2 文件能成功得到结果,但是将合并了环境和原 js 文件后的代码内容单独提取出来通过 vm2 调用却报错提示 SyntaxError: Use of internal ...

  7. 移动端开发基本知识之touch.js,FastClick.js源码分析

    问题1:300ms延迟问题指的是? 不管在移动端还是PC端,我们都需要处理用户点击,这个最常用的事件.但在touch端click事件响应速度会比较慢,在较老的手机设备上会更为明显(300ms的延迟). ...

  8. underscore.js 源码分析5 基础函数和each函数的使用

    isArrayLike 检测是数组对象还是纯数组 var property = function(key) {return function(obj) {return obj == null ? vo ...

  9. Vue.js 源码分析—— Slots 是如何实现的

    今天主要分析 Vue.js 中常用的 Slots 功能是如何设计和实现的.本文将分为普通插槽.作用域插槽以及 Vue.js 2.6.x 版本的 v-slot 语法三部分进行讨论. 本文属于进阶内容,如 ...

最新文章

  1. Docker的安装和使用及其Docker容器间通信,云计算技术与应用实验报告
  2. 8.10. show vlans
  3. phpexcel用法(转)
  4. 取消项目git_git取消文件跟踪
  5. Python+Django+Eclipse 在Windows下快速开发自己的网站
  6. 合奏:机器学习中唯一(几乎)免费的午餐
  7. php7 空对象,PHP设计模式之空对象模式(Null Object)代码实例大全(26)
  8. javascript java html_JS入门篇(二):在html中如何使用Javascript
  9. 在linux环境下com.aspose.words将word文件转为pdf后乱码,window环境下不会
  10. ATL CLR MFC Win32的区别
  11. STlink下载程序步骤
  12. 一款java游戏收齐绿宝石哈,神奇宝贝绿宝石游戏
  13. 软件设计中的心跳机制
  14. 解决 PHP http_build_query() 预期得到 not 却得到 ¬ 的问题
  15. MES系统对注塑行业的帮助
  16. 我为什么要辞掉20万的工作去读研?
  17. 禾穗HERS | 不结婚就不孝?催婚季必备三招快学起来!
  18. 你真以为贪吃蛇是个简单的游戏?
  19. 联想r720安装固态_联想拯救者r720笔记本NVME接口M.2固态硬盘怎么安装win7系统
  20. Cocos2D教程:使用SpriteBuilder和Cocos2D 3.x开发横版动作游戏——Part 2

热门文章

  1. oauth2.0源码分析之oauth/token申请令牌
  2. 英雄联盟云顶之弈知识图谱构建
  3. Echarts基础面积图
  4. python好玩的案例-Python有趣的小案例-美国队长盾牌
  5. matlab读取txt/excel文件并画图的方法
  6. BPMN术语中英文对照表
  7. python编辑器编程猫_编程猫Python编辑器 v1.2.0 下载
  8. 校园上网神器:猎豹免费WiFi2.0
  9. 为什么每次登录都有烦人的验证码
  10. 商务统计_14 统计指数