首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
JavaScript模式
订阅
Glee17718
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
JS常用的18种设计模式总结
我想作为中、高级前端工程师,需要了解一些设计模式的知识。这里我花了一个多月的时间,终于把js中常用的设计模式整理了一遍,大家对号入座,如果不了解某种设计模式,可以点开链接去查看。本系列博文参考了wiki、名人博客、掘金、CSDN、SegmentFault、JS设计模式和开发实践等
让虚拟DOM和DOM-diff不再成为你的绊脚石
createElement方法也是vue和react用来创建虚拟DOM的方法,我们也叫这个名字,方便记忆。接收三个参数,分别是type,props和children 到目前为止,已经轻而易举的实现了创建虚拟DOM。那么,接下来进行下一步,将其渲染为真实的DOM,别犹豫,继续回到…
九种跨域方式实现原理(完整版)
前后端数据交互经常会碰到请求跨域,什么是跨域,以及有哪几种跨域方式,这是本文要探讨的内容。 本文完整的源代码请猛戳github博客,纸上得来终觉浅,建议大家动手敲敲代码。 同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSR…
如何定义一个高逼格的原生JS插件
作为一个前端er,如果不会写一个小插件,都不好意思说自己是混前端界的。写还不能依赖jquery之类的工具库,否则装得不够高端。那么,如何才能装起来让自己看起来逼格更高呢?当然是利用js纯原生的写法啦。以前一直说,掌握了js原生,就基本上可以解决前端的所有脚本交互工作了,这话大体…
import、require、export、module.exports 混合使用详解
自从使用了 es6 的模块系统后,各种地方愉快地使用 import export default,但也会在老项目中看到使用commonjs规范的 require module.exports。甚至有时候也会常常看到两者互用的场景。使用没有问题,但其中的关联与区别不得其解,使用起…
【JS】装饰器让你的代码更简洁
当我们在使用JavaScript时,有时需要用到setTimeout函数来强制代码延迟运行。比如: 我很讨厌这样写代码,我希望它变得简洁,所以我们可以把setTimeout函数抽象成装饰器。 这里我们需要传入一个数值作为参数(默认为0),所以我们需要使用装饰器工厂模式。 接下来…
前端模块化详解(完整版)
在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即可;如今CPU、浏览器性能得到了极大的提升,很多页面逻辑迁移到了客户端(表单验证等),随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端库层出不穷,前端代码日益膨胀,此时在JS方面就会…
基于原型链劫持的前端代码插桩实践
代码插桩技术能够让我们在不更改已有源码的前提下,从外部注入、拦截各种自定的逻辑。这为施展各种黑魔法提供了巨大的想象空间。下面我们将介绍浏览器环境中一些插桩技术的原理与应用实践。 封装一个「先执行自定义逻辑,然后执行原有 log 方法的函数」。 将原生 console.log 替…
常用的Javascript设计模式
《Practical Common Lisp》的作者 Peter Seibel 曾说,如果你需要一种模式,那一定是哪里出了问题。他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案。 不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生…
职责链模式
职责链模式(Chain of responsibility)是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。提交请求的对象并不明确知道哪一个对象将会处理它——也就是该请求有一个隐式…