电子书籍与chrome插件
《css揭秘》
《javascript高级程序设计第4版》
Windows软件
Snipaste截图工具
cmder命令行工具
linux软件
flameshot截图软件
浏览器插件
vue-devtools:用于调试Vue应用程序的扩展插件
react-devtools:用于调试React应用程序的扩展插件
Draw.io:在线图表编辑工具, 可以用来编辑工作流、BPM、org charts、UML、ER图、网络拓朴图等。
MuseTransfer:文件传输工具
PostWoman:http接口调试,post调试,post模拟.
Restlet Client:类似Postman的Api接口测试工具
WEB前端助手(FeHelper)_v2019.09.0320完整版
更多浏览器插件
小脚本
kuaishou-originid-crawler.zip
常用工具小网站
在线工具
八千导航
踢踢零工具
代码生成图片
在线生成封面图
资源类
果核剥壳-资源下载
龙轩导航
Windows下常用工具
Snipaste-简单但强大的截图工具
linux下安装vue-cli
有幸(bushi)在Linux系统中进行前端开发,使用npm install -g @vue/cli安装vue-cli时,安装过程中提示权限不足,安装失败,第一时间想到修改权限,但是尝试无果(电脑被提前设置权限,无法手动提升权限,蚌埠了),后面去网上查询,总结如下方式。
修改npm全局安装的目录1.使用命令创建一个目录,用来存放全局模块
1mkdir ~/.npm-global
2.使用命令配置npm以使用新的目录
1npm config set prefix '~/.npm-global'
3.使用vi命令打开~/.bashrc文件
1vi ~/.bashrc
4.打开文件后,滚动到文件末尾,输入i,进入编辑模式,添加如下内容到文件结尾
1export PATH=~/.npm-global/bin:$PATH
按下esc按键,输入:wq保存退出
5.在命令行中更新环境变量,使其立即生效
1source ~/.bashrc
全局安装vue-cli1npm install -g @vue/cli
查看版本
1vue -V
参考npm全局安装权限不足Re ...
寄生组合继承
思路
创建一个空对象,空对象的原型链接到父类的显式原型上
空对象的constructor指向子类
子类的显式原型指向空对象
代码123456789101112/** * @description 寄生组合继承 * @params childClass - 子类,parentClass - 父类 */function inherit(Child, Parent) { // 创建一个`空对象`,`空对象`的原型链接到`父类`的`显式原型`上 const obj = Object.create(Parent.prototype) // `空对象`的`constructor`指向`子类` obj.construct = Child // 子类的显式原型指向`副本对象` Child.prototype = obj}
使用示例:
12345678910111213141516171819202122232425function Person(name) { this.name = name this.colors = ['red ...
实现new操作符
思路
创建空对象,链接原型到构造函数的显式原型上
执行构造函数,改变this为空对象,保存执行结果
构造函数执行结果是对象就返回该结果;否则返回obj对象
代码123456789function myNew(fn, ...args) { // 创建空对象,链接原型到构造函数的显式原型上,obj对象就可以访问原型上的方法和属性 const obj = Object.create(fn.prototype) // 使用apply执行构造函数,this指向为obj对象 const result = fn.apply(obj, args) // 如果构造函数执行结果是对象就返回该结果;否则,返回obj对象 return result instanceof Object ? result : obj}
实现call和bind函数
实现call函数思路
原理:函数作为对象的属性调用时,this指向对象
获取thisArg参数和剩余参数
获取调用call的函数,把该函数设置到thisArg.func属性上
执行thisArg.func函数,并接收函数执行后的结果result
移除thisArg上的func函数
返回执行结果
源码123456789101112Function.prototype.myCall = function(thisArg, ...args) { // 值为 null, undefined时, 自动指向全局对象window thisArg = thisArg == null ? window : thisArg // 获取调用myCall时的方法,并把函数设置到thisArg.func属性上 thisArg.func = this // 执行thisArg.func函数,接收结果 const result = thisArg.func(...args) // 移除thisArg上的func delete thisArg.func // 返回结果 return ...
