- 博客(6)
- 收藏
- 关注
原创 深入浅出js单例模式
何为单例模式?顾名思义,单例模式就是***保证一个类仅有一个实例***,也就是创建出来的两个实例必须相等!构造函数静态属性创建单例 function Singleton() { // 已有实例则返回该实例,没有则创建实例 if (typeof Singleton.instance === 'object') { return Singleton.i...
2020-02-27 17:31:52 142
原创 发布订阅和观察者模式的区别
有些人认为观察者模式就是发布订阅模式,实际上观察者模式是包含了订阅发布模式,发布订阅模式只是观察者模式中的一种。观察者模式是观察者和被观察者之间的通信,而发布订阅模式中间增加了一个中转层,通过第三方来分发信息。观察者模式 // Subject为被观察者,Subject中的状态(state)改变,就通知 Observer更新 class Subject { constr...
2020-02-24 22:45:00 247
原创 Js中常见this指向问题
无论是工作或者面试中,this指向问题是经常遇到的。所以这篇文章把常见的指向问题列出来给大家,避免踩坑。首先我们要知道,在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了,也就是说,this的指向完全取决于函数调用的位置。因为this的取值是作用域环境的一部分,每次调用函数,都会在不同的作用域环境。1:全局环境中在浏览器环境严格模式中(区别于node),th...
2020-02-23 21:17:21 253 1
原创 防抖和节流
窗口的resize、scroll、输入框内容校验等操作时,如果这些操作处理函数是较为复杂或页面频繁重渲染等操作时,在这种情况下如果事件触发的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用debounce(防抖)和throttle(节流)的方式来减少触发的频率,同时又不影响实际效果。防抖在事件被触发n秒之后执行,如果在此期间再次触发事件,则重新开始计时。我们模拟输入...
2020-01-06 09:18:57 171
原创 module.exports和exports的区别
module.exports和exports的区别在node中,为什么我们使用 module.exports 或 exports 可以导出模块数据,那是因为模块默认添加了如下代码,这些代码我们都看不到。 // 默认添加 声明了module对象,并且为空,并有exports属性 var module = { exports: { // 导出的内容 ...
2019-12-30 10:34:35 179
原创 JS常见字符串操作方法
JS常见字符串操作方法最近难得有空摸鱼,把工作开发中常见易混淆的字符串操作方法,做一些归纳总结,主要介绍了slice substring substr substr split join String toString 等方法,这些方法都不会改变原始字符串,更多字符操作方法,请看菜鸟教程。 ☛传送门一、 slice 方法返回一个索引和另一个索引之间的字符串str.slice(begi...
2019-12-24 14:07:42 180
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人