摘要: 首先从以下几点来考虑如何实现这几个函数 不传入第一个参数,那么上下文默认为 window 改变了 this 指向,让新的对象可以执行该函数,并能接受参数 1. 那么我们先来实现 call 1 Function.prototype.myCall = function(context) { 2 if ( 阅读全文
posted @ 2020-10-22 11:48 阿伮 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 1、执行机制 JS 是单线程的,处理 JS 任务(程序)只能一个一个顺序执行,所以 JS 中就把任务分为了同步任务和异步任务。同步的进入主线程先执行,异步的进入Event Table并注册函数,当指定的事情完成时,Event Table会将这个函数移入事件队列Event Queue,等待主线程内的任 阅读全文
posted @ 2020-10-22 10:45 阿伮 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 发生顺序为: mousedown -> focus -> mouseup -> click 阅读全文
posted @ 2020-05-28 16:34 阿伮 阅读(748) 评论(0) 推荐(0) 编辑
摘要: 1.总结事件兼容 var EventUtil = { addHandler: function (element, type, handler) {//添加监听事件兼容 if (element.addEventListener) { element.addEventListener(type, ha 阅读全文
posted @ 2020-04-24 10:54 阿伮 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 持续记录… 1.内存泄露 由于 IE9 之前的版本对 JScript 对象和 COM 对象使用不同的垃圾收集例程因此闭包在 IE 的这些版本中会导致一些特殊的问题。具体来说,如果闭包的作用域链中保存着一个HTML 元素,那么就意味着该元素将无法被销毁。来看下面的例子。 function assign 阅读全文
posted @ 2020-04-21 17:41 阿伮 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 关于继承有很多方式,这里着重讲一下原型链继承/借用构造函数继承/组合继承以及各自的优缺点 1.原型链继承:子类型的原型对象 = 超类型的实例 function SuperType() { this.colors = ["red", "blue", "green"]; } function SubTy 阅读全文
posted @ 2020-04-21 16:30 阿伮 阅读(349) 评论(0) 推荐(0) 编辑
摘要: Vue 的响应式原理是核心是通过 ES5 的保护对象的 Object.defindeProperty 中的访问器属性中的 get 和 set 方法,data 中声明的属性都被添加了访问器属性,当读取 data 中的数据时自动调用 get 方法,当修改 data 中的数据时,自动调用 set 方法,检 阅读全文
posted @ 2020-04-20 17:59 阿伮 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 这三个方法都会返回被操作字符串的一个子字符串,而且也都接受一或两个参数。第一个参数指定子字符串的开始位置,第二个参数(在指定的情况下)表示子字符串到哪里结束。具体来说,slice()和substring()的第二个参数指定的是子字符串最后一个字符后面的位置。而 substr()的第二个参数指定的则是 阅读全文
posted @ 2020-04-18 21:33 阿伮 阅读(3189) 评论(0) 推荐(1) 编辑
摘要: 以我自己封装的一个npm包为例,用于音频打点切分,展示音频波形图,波形图选区播放等,如下图: 传送门: npm: https://www.npmjs.com/package/audio_wave_plugin github源码:https://github.com/panxiaoxiao0823/a 阅读全文
posted @ 2020-04-17 15:14 阿伮 阅读(3501) 评论(0) 推荐(0) 编辑
摘要: instanceof和typeof是两个运算符,在程序设计中用到,常用来判断一个变量是否为空,或者是什么类型的。instanceof和typeof的区别:typeoftypeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。返回值是一个字符串,该字符串说明运算数的类型。typeof 一 阅读全文
posted @ 2020-04-13 12:00 阿伮 阅读(776) 评论(0) 推荐(0) 编辑