js源码分析(一)——Call
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相关推荐
- video.js 源码分析(JavaScript)
video.js 源码分析(JavaScript) 组织结构 继承关系 运行机制 插件的运行机制 插件的定义 插件的运行 控制条是如何运行的 UI与JavaScript对象的衔接 类的挂载方式 存储 ...
- impress.js 源码分析
impress.js 源码分析 之前做展示用幻灯片,我一直热衷于使用PPT,刚开始学习PPT时总是强行使用各种页面特效,越做越复杂.现在看来,学技术大概都要经历一个从简到繁再到简的过程吧.后来,无 ...
- Vue.js 源码分析(二十三) 指令篇 v-show指令详解
v-show的作用是将表达式值转换为布尔值,根据该布尔值的真假来显示/隐藏切换元素,它是通过切换元素的display这个css属性值来实现的,例如: <!DOCTYPE html> < ...
- Vue.js 源码分析(九) 基础篇 生命周期详解
先来看看官网的介绍: 主要有八个生命周期,分别是: beforeCreate.created.beforeMount.mounted.beforeupdate.updated .beforeDes ...
- Vue.js 源码分析(五) 基础篇 方法 methods属性详解
methods中定义了Vue实例的方法,官网是这样介绍的: 例如:: <!DOCTYPE html> <html lang="en"> <head&g ...
- 补环境:vm2 transformer.js 源码分析
在补环境框架的文件夹里执行 vm2 文件能成功得到结果,但是将合并了环境和原 js 文件后的代码内容单独提取出来通过 vm2 调用却报错提示 SyntaxError: Use of internal ...
- 移动端开发基本知识之touch.js,FastClick.js源码分析
问题1:300ms延迟问题指的是? 不管在移动端还是PC端,我们都需要处理用户点击,这个最常用的事件.但在touch端click事件响应速度会比较慢,在较老的手机设备上会更为明显(300ms的延迟). ...
- underscore.js 源码分析5 基础函数和each函数的使用
isArrayLike 检测是数组对象还是纯数组 var property = function(key) {return function(obj) {return obj == null ? vo ...
- Vue.js 源码分析—— Slots 是如何实现的
今天主要分析 Vue.js 中常用的 Slots 功能是如何设计和实现的.本文将分为普通插槽.作用域插槽以及 Vue.js 2.6.x 版本的 v-slot 语法三部分进行讨论. 本文属于进阶内容,如 ...
最新文章
- Docker的安装和使用及其Docker容器间通信,云计算技术与应用实验报告
- 8.10. show vlans
- phpexcel用法(转)
- 取消项目git_git取消文件跟踪
- Python+Django+Eclipse 在Windows下快速开发自己的网站
- 合奏:机器学习中唯一(几乎)免费的午餐
- php7 空对象,PHP设计模式之空对象模式(Null Object)代码实例大全(26)
- javascript java html_JS入门篇(二):在html中如何使用Javascript
- 在linux环境下com.aspose.words将word文件转为pdf后乱码,window环境下不会
- ATL CLR MFC Win32的区别
- STlink下载程序步骤
- 一款java游戏收齐绿宝石哈,神奇宝贝绿宝石游戏
- 软件设计中的心跳机制
- 解决 PHP http_build_query() 预期得到 not 却得到 ¬ 的问题
- MES系统对注塑行业的帮助
- 我为什么要辞掉20万的工作去读研?
- 禾穗HERS | 不结婚就不孝?催婚季必备三招快学起来!
- 你真以为贪吃蛇是个简单的游戏?
- 联想r720安装固态_联想拯救者r720笔记本NVME接口M.2固态硬盘怎么安装win7系统
- Cocos2D教程:使用SpriteBuilder和Cocos2D 3.x开发横版动作游戏——Part 2