「已注销」
码龄10年
关注
提问 私信
  • 博客:7,678
    7,678
    总访问量
  • 14
    原创
  • 暂无
    排名
  • 3
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2015-01-05
博客简介:

前端大菜鸟的博客

查看详细资料
个人成就
  • 获得5次点赞
  • 内容获得0次评论
  • 获得8次收藏
创作历程
  • 14篇
    2020年
成就勋章
TA的专栏
  • JavaScript API 实现原理
    6篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Function.prototype.bind 实现原理

Function.prototype.bind 方法说明 作用同call和apply一样,在指定对象上执行指定方法,不同点在于: 1、bind返回的是一个可执行函数 2、通过bind实现偏函数 源码关键点在于 1、闭包:缓存bind方法的参数(上下文对象和参数列表) 2、返回可执行函数 3、可执行函数的内部通过apply方法实现对象和方法的绑定 4、偏函数的关键在于闭包(缓存bind方法的参...
原创
发布博客 2020.03.26 ·
377 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Function.prototype.apply 实现原理

Function.prototype.apply 方法说明 apply方法的作用和call方法一样,不同之处在于提供参数的方式,apply使用参数数组,而call使用一组参数列表 源码关键点在于 同Function.prototype.call方法的实现一致,还是要在传递进来的上下文对象中构建一个需要执行的方法 源码 Function.prototype.myApply = functio...
原创
发布博客 2020.03.26 ·
365 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Function.prototype.call 实现原理

Function.prototype.call 方法说明 call() 允许为不同的对象分配和调用属于一个对象的函数/方法。 call() 提供新的 this 值给当前调用的函数/方法。你可以使用 call 来实现继承:写一个方法,然后让另外一个新的对象来继承它(而不是在新对象中再写一次这个方法) 源码的关键点在于 在传递进来的上下文对象中构造一个需要执行的方法,比如: ctx = { fn...
原创
发布博客 2020.03.26 ·
507 阅读 ·
0 点赞 ·
0 评论 ·
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 ·
560 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

new 运算符实现原理

new 运算符 方法说明 new运算符会创建一个用户自定义对象类型(就是自定义函数、或者说构造函数)的实例或具有构造函数的内置对象(比如:Number、String等原生对象)的实例,具体的过程如下: 创建一个空对象,{} 将第一步的空对象链接到另一个对象(new操作符后面跟着的构造函数的原型对象) 将第一步创建的对象作为构造函数的this上下文 返回对象实例,如果构造函数有返回对象,则对象实...
原创
发布博客 2020.03.26 ·
460 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Object.create 实现原理

Object.create 方法说明 Object.create()方法创建一个新的对象,并以方法的第一个参数作为新对象的__proto__属性的值(以第一个参数作为新对象的构造函数的原型对象) Object.create()方法还有第二个可选参数,是一个对象,对象的每个属性都会作为新对象的自身属性,对象的属性值以descriptor(Object.getOwnPropertyDescript...
原创
发布博客 2020.03.26 ·
2580 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Object.assign 实现原理

Object.assign 方法说明 Object.assign()用于将对象自身所有的可枚举属性从一个或者多个源对象上复制到目标对象 源码的关键点在于 该方法的原理比较简单,实现的关键点在于理解 ”方法说明“ 中的内容,对照下面的源码内容和注释,即可理解和实现 源码 Object.myAssign = function (target, ...src) { for (let i = ...
原创
发布博客 2020.03.26 ·
941 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Function.prototype.call / apply / bind

Function.prototype.call 方法说明 call() 允许为不同的对象分配和调用属于一个对象的函数/方法。 call() 提供新的 this 值给当前调用的函数/方法。你可以使用 call 来实现继承:写一个方法,然后让另外一个新的对象来继承它(而不是在新对象中再写一次这个方法) 源码的关键点在于 在传递进来的上下文对象中构造一个需要执行的方法,比如: ctx = { fn...
原创
发布博客 2020.03.26 ·
260 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JavaScript 运行机制

1. 单线程的JavaScript JavaScript是单线程的语言这,由它的用途决定的,作为浏览器的脚本语言,主要负责和用户交互,操作DOM。 假如JavaScript是多线程的,有两个线程同时操作一个DOM节点,一个负责删除DOM节点,一个在DOM节点上添加内容,浏览器该以哪个线程为标准呢? 所以,JavaScript的用途决定它只能是单线程的,过去是,将来也不会变。 HTML...
原创
发布博客 2020.03.23 ·
147 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

javascript继承

原型链继承 优点 简单,易于实现 缺点 无法实现多继承 子类实例无法为父类构造函数传递自己特有的属性值,因为父类构造函数只在为子类构造函数的原型对象赋值时调用了一次,所以每个实例都共享同一样的父类属性值 代码 // 父类构造函数 function Parent (name, age) { this.name = name this.age = age ...
原创
发布博客 2020.02.11 ·
160 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

柯里化、偏函数、反柯里化

柯里化 描述 柯里化算是特殊的偏函数,把一个多参数函数转换成多个单参数函数,也就是说把一个具有n个参数的函数转换成n个一元函数 示例 // 正常写法 function add (a, b) { return a + b } const resAdd = add(2, 3) console.log(resAdd) // 5 // 柯里化 function currieAdd...
原创
发布博客 2020.01.31 ·
243 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

javascript的浅拷贝和深拷贝

什么是浅拷贝和深拷贝 拷贝:指拷贝源对象到目标对象,又分为浅拷贝和深拷贝两种 浅拷贝:如拷贝的对象有属性值是非基础类型(即对象),则浅拷贝拷贝的是对象的引用,而非对象本身,拷贝完成以后更改目标对象,源对象也会被更改 深拷贝:深拷贝完美解决了浅拷贝存在的问题,目标对象是一个全新的对象,更改目标对象不会影响到源对象 浅拷贝 Object.assign() // 对象的属性值都是基础类型 c...
原创
发布博客 2020.01.29 ·
328 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

javascript节流、防抖

为什么需要节流、防抖 当某个事件频繁触发时,事件处理函数会频繁执行,如果处理函数有一些费时、耗性能的操作,就会导致页面出现卡顿甚至浏览器崩溃,这时就需要节流和防抖 什么是节流、防抖 节流 当事件频发触发时,事件处理程序每隔一段时间执行一次 防抖 如果某个频繁触发的事件在规定的时间内没有再次触发,则执行事件处理程序,如果在这段时间内事件再次触发了,则重新计时 什么时候需要节流、防...
原创
发布博客 2020.01.28 ·
408 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

javascript原型链

一张图看懂JS原型链 属性 prototype:获取函数的原型对象,函数特有的属性 _proto_:获取对象的构造函数的原型对象,所有的JS对象都有该属性 constructor:获取对象的构造函数,所有的JS对象都有该属性 说明 javascript一切皆对象,比如"JS原型链“图中列出的函数、原型对象、对象实例 示例 // 示例代码,下面的例子会用到 function Foo () ...
原创
发布博客 2020.01.26 ·
266 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏