女王控的博客

全部

230 篇文章

JS构造函数、原型、原型链

构造函数 constructor 返回创建实例对象时构造函数的引用(即 对象.constructor === 构造函数.prototype.constructor),此属性的值是对函数本身的引用,而不是一个包含函数名称的字符串 构造函数本身就是一个函数,与普通函数没有任何区别,不过为了规范一般将其首字母大写。构造函数和普通函数的区别在于,使用 new 生成实例的函数就是构造函数,直接调用的就是普通函数。 那是不是意味着普通函数创建的实例没有 constructor 属性呢?不一定。 Symbol… »

基于wavesurfer.js声音波形图的研究

需求背景 最近要做一个声音波形图组件,方便运营人员对声音进行切分,以配合完成人工切分录音的工作 核心思路 利用 ref 属性调用原生方法 解决方案 功能点 点击播放只会在播放区域进行播放,再次点击暂停播放,鼠标右键点击播放区域也可播放 可以添加播放区域,添加时会删除上一个播放区域,按住 shift + 鼠标右键可删除播放区域 可以放大缩小波形图 WaveFormDivider/index.js WaveFormDivider/styles.css 类似实现效果 »

富文本框疑难点处理过程

需求背景 最近要做一个需求类似于富文本框的功能,需要输入带有 span 标签并显示,同时 span 标签是一个整体,只能同时输入同时删除,目前需求只有这一个 html 标签,暂时无其他标签 需求难点 placeholder 提示语 input 和 textarea 能轻松实现 placeholder 提示语的效果,但作用于 contenteditable 的元素,placeholder 不起作用,可以通过 css 的 :empty 解决 获取输入框的内容 可以利用 innerHTML… »

ReactPlayer之IE兼容性研究

需求背景 解决 react-player 控件在 IE 浏览器下声音的播放 核心思路 ReactPlayer 底层调用了 audio 标签来播放音频,video 标签来播放视频,因为在 IE 浏览器下是没有 audio 标签的,所以使用了 embed 标签,其在 IE 下是调用 windows media player,关于其用法如下 功能 播放: MediaPlayer.Play() 暂停: MediaPlayer.Pause() 定位: MediaPlayer.SetCurrentEntry… »

你不知道的 JS 之异步与性能

异步:现在与将来 分块的程序 程序是由多个块组成,只有一个是现在执行,其余的则会在将来执行,最常见的块单位是函数 程序中将来执行的部分并不一定在现在运行的部分执行完后就立即执行,也就是现在无法完成的任务将会异步完成 从现在到将来的等待最简单的方法是使用一个通常称为回调函数的函数 可以同步发送 ajax 请求,但是建议在任何情况都不应该使用这种方式,因为它会被锁定器 UI(按钮、菜单、滚动条等),并阻塞所有用户交互 考虑以下代码: 以上代码可以拆分现在和将来部分: 异步控制台 宿主环境添加到 js… »

0%