JavaScript高级⑤-高级函数
安全的类型检测
在JS中,内置的类型检测机制有typeof和instanceof
,但是这两个关键字并非完全可靠
。所以我们可以使用Object的toString()方法
以保证返回一个[object XXX]
格式的字符串。这样就可以创建一个函数来判断对象的类型。
作用域安全的构造函数
- 创建一个作用域安全的构造函数,就是让this对象指向正确的实例对象。
- 首先使用
instanceof
方法判断this对象是否为正确类型的实例,如果不是,就创建一个新的实例并返回。
惰性载入函数
惰性载入函数表示函数执行的分支仅会发生一次,实现惰性载入函数的方式有两种。
1. 第一种,在函数被调用时再处理。在第一次调用时,该函数会覆盖为另一个按合适方式执行的函数,这样任何对函数的调用都不会再经过执行的分支了。
2. 第二种,在声明函数时就制定适当的函数。这样在第一次调用函数时就不会损失性能,而在代码首次加载时会损失一点儿性能。
函数绑定
JS与DOM交互中经常需要使用函数绑定,定义一个函数然后将其绑定到特定DOM元素或集合的某个事件触发程序上,也经常与事件处理程序一起使用,以便把函数作为变量传递的同时保留代码执行环境。
重复的定时器
我们通常使用setInterval
方式来实现时间间隔会出现两个问题:
1. 某些间隔会被跳过。
2. 多个定时器的代码执行时,间隔可能会有误差。
所以我们可以使用setTimeout
方式来完善该功能。
函数节流
- 定时器不仅可以用来定时,还可以用来缓解浏览器的压力。浏览器在执行DOM操作的时候,就会使用更多的内存和CPU。连续使用过多的DOM操作会导致浏览器崩溃。
- 函数节流的基本思想就是,某些代码不可以在没有间断的情况下连续重复使用。也就是说,第一次调用函数就创建一个定时器,在指定的时间间隔之后才能再次运行。当第二次调用该函数时,就会清除前一次的定时器并设置一个。目的就是为了保证每次执行函数时有一段时间的间隔。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hoo's Blog!
评论