![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript API 实现原理
「已注销」
这个作者很懒,什么都没留下…
展开
-
Function.prototype.bind 实现原理
Function.prototype.bind方法说明作用同call和apply一样,在指定对象上执行指定方法,不同点在于:1、bind返回的是一个可执行函数2、通过bind实现偏函数源码关键点在于1、闭包:缓存bind方法的参数(上下文对象和参数列表)2、返回可执行函数3、可执行函数的内部通过apply方法实现对象和方法的绑定4、偏函数的关键在于闭包(缓存bind方法的参...原创 2020-03-26 11:47:46 · 343 阅读 · 0 评论 -
Function.prototype.apply 实现原理
Function.prototype.apply方法说明apply方法的作用和call方法一样,不同之处在于提供参数的方式,apply使用参数数组,而call使用一组参数列表源码关键点在于同Function.prototype.call方法的实现一致,还是要在传递进来的上下文对象中构建一个需要执行的方法源码Function.prototype.myApply = functio...原创 2020-03-26 11:46:49 · 339 阅读 · 0 评论 -
Function.prototype.call 实现原理
Function.prototype.call方法说明call() 允许为不同的对象分配和调用属于一个对象的函数/方法。call() 提供新的 this 值给当前调用的函数/方法。你可以使用 call 来实现继承:写一个方法,然后让另外一个新的对象来继承它(而不是在新对象中再写一次这个方法)源码的关键点在于在传递进来的上下文对象中构造一个需要执行的方法,比如:ctx = { fn...原创 2020-03-26 11:45:54 · 471 阅读 · 0 评论 -
instanceof 实现原理
instanceof方法说明判断指定构造函数的原型对象是否出现在指定对象的原型链上示例function Test (name) { this.name = name this.log = function () { console.log(this.name) }}const t = new Test()// 判断对象t是否是另一个对象(Test)的实例/...原创 2020-03-26 11:41:55 · 524 阅读 · 0 评论 -
new 运算符实现原理
new 运算符方法说明new运算符会创建一个用户自定义对象类型(就是自定义函数、或者说构造函数)的实例或具有构造函数的内置对象(比如:Number、String等原生对象)的实例,具体的过程如下:创建一个空对象,{}将第一步的空对象链接到另一个对象(new操作符后面跟着的构造函数的原型对象)将第一步创建的对象作为构造函数的this上下文返回对象实例,如果构造函数有返回对象,则对象实...原创 2020-03-26 11:40:58 · 413 阅读 · 0 评论 -
Object.create 实现原理
Object.create方法说明Object.create()方法创建一个新的对象,并以方法的第一个参数作为新对象的__proto__属性的值(以第一个参数作为新对象的构造函数的原型对象)Object.create()方法还有第二个可选参数,是一个对象,对象的每个属性都会作为新对象的自身属性,对象的属性值以descriptor(Object.getOwnPropertyDescript...原创 2020-03-26 11:39:42 · 2539 阅读 · 0 评论 -
Object.assign 实现原理
Object.assign方法说明Object.assign()用于将对象自身所有的可枚举属性从一个或者多个源对象上复制到目标对象源码的关键点在于该方法的原理比较简单,实现的关键点在于理解 ”方法说明“ 中的内容,对照下面的源码内容和注释,即可理解和实现源码Object.myAssign = function (target, ...src) { for (let i = ...原创 2020-03-26 11:38:46 · 910 阅读 · 0 评论