← 返回目录

第 3 卷

第 3 / 8 卷作者:13611日期:

图 9-1
图 9-1

const boundParams = [...arguments].slice(1)

4 const boundTargetFunc = this;

5 if (typeof boundTargetFunc !== 'function') { 6

throw new TypeError('the bound target function must be a function.

7 } 8

function fBound() { 9 const restParams = [...arguments]

10const allParams = boundParams.concat(restParams)

11returnboundTargetFunc.apply(thisinstanceoffBound?this:thisA
12}
13fBound.prototype=Object.create(boundTargetFunc.prototype)
14returnfBound;
15}

手写实现 new 操作符的能力

写实现new,只能函数new程 1.

创建新对象obj 2.

新对象obj的原型指可以通过

  1. 执构造函数函数

4.

返回这个对象

1 function myNew(Constructor, ...args) { 2

var obj = Object.create(Constructor.prototype)

3 Constructor.call(obj, ...args)

4 return obj;

5 }

手写实现 instanceof

手写实现 Promise

图 10-1
图 10-1

手写 Promise.prototype.catch

是基于有点简单了。

1 Promise.prototype.myCatch = function(onRejected) { 2

return this.then(undefined, onRejected)

3 }

手写 Promise.prototype.finally

这个是有可能考的,比如微信小程序就不支持 finally。可以基于 .then 来实现,不管 fulfilled 还是 rejected 都要执行onFinally。

手写 Promise.all

这个主要是考察如何收集每㇐个 Promise 的状态变化,在最后㇐个 Promise 状态变化时,对外发出信号。

  • 判断 iterable 是否空
  • 判断 iterable 是否全部不是 Promise
  • 遍历,如果某项是 Promise,利用 .then 获取结果,如果 fulfilled,将 value 存在 values 中,并用fulfillCount 计数;如果是 rejected,直接 reject

reason。

  • 如果某项不是 Promise,直接将值存起来,并计数。
  • 等所有异步都 fulfilled,fulfillCount 必将是 iterable 的长度(在 onFulfilled 中判断 fulfillCount),此时可以 resolve values。

手写防抖节流

防抖

原理:

防抖( debounce):不管事件触发频率多高,㇐定在事件触发 n 秒后才执行,如果你在㇐个事件触发的 n 秒内又触发了这个事件,就以新的事件

的时间为准, n 秒后才执行,总之,触发完事件 n 秒内不再触发事件, n 秒后再执行。(频繁触发就执行最后㇐次)

应用场景:

  1. 窗口大小变化,调整样式
  2. 搜索框,输入后 1000 毫秒搜索
  3. 表单验证,输入1000 毫秒后验证
  4. 频繁点击按钮,使用防抖避免重复提交请求

防抖实现:

  • debunce 实则是个包装函数,通过传入操作函数和时间间隔,来返回㇐个新函数
  • 新函数中主要是通过定时器来设置函数调用的频率
  • flag 只有第㇐次触发的时候会立即执行

本卷图片

本页图片

第 9 页图片 1
图 9-1
第 9 页图片 2
图 9-2
第 9 页图片 3
图 9-3
第 9 页图片 4
图 9-4
第 9 页图片 5
图 9-5
第 9 页图片 6
图 9-6
第 9 页图片 7
图 9-7
第 9 页图片 8
图 9-8
第 9 页图片 9
图 9-9
第 9 页图片 10
图 9-10
第 9 页图片 11
图 9-11
第 9 页图片 12
图 9-12
第 9 页图片 13
图 9-13
第 9 页图片 14
图 9-14
第 9 页图片 15
图 9-15
第 9 页图片 16
图 9-16
第 9 页图片 17
图 9-17
第 9 页图片 18
图 9-18
第 9 页图片 19
图 9-19
第 9 页图片 20
图 9-20
第 9 页图片 21
图 9-21
第 9 页图片 22
图 9-22
第 9 页图片 23
图 9-23
第 9 页图片 24
图 9-24
第 9 页图片 25
图 9-25
第 9 页图片 26
图 9-26
第 9 页图片 27
图 9-27
第 9 页图片 28
图 9-28
第 9 页图片 29
图 9-29
第 9 页图片 30
图 9-30
第 9 页图片 31
图 9-31
第 9 页图片 32
图 9-32
第 9 页图片 33
图 9-33
第 9 页图片 34
图 9-34
第 9 页图片 35
图 9-35
第 9 页图片 36
图 9-36
第 9 页图片 37
图 9-37
第 9 页图片 38
图 9-38
第 9 页图片 39
图 9-39
第 9 页图片 40
图 9-40
第 9 页图片 41
图 9-41
第 9 页图片 42
图 9-42
第 9 页图片 43
图 9-43
第 9 页图片 44
图 9-44
第 9 页图片 45
图 9-45
第 9 页图片 46
图 9-46
第 9 页图片 47
图 9-47
第 9 页图片 48
图 9-48
第 9 页图片 49
图 9-49
第 9 页图片 50
图 9-50
第 9 页图片 51
图 9-51
第 9 页图片 52
图 9-52
第 9 页图片 53
图 9-53
第 9 页图片 54
图 9-54
第 9 页图片 55
图 9-55
第 9 页图片 56
图 9-56
第 9 页图片 57
图 9-57
第 9 页图片 58
图 9-58
第 9 页图片 59
图 9-59
第 9 页图片 60
图 9-60
第 9 页图片 61
图 9-61
第 9 页图片 62
图 9-62
第 9 页图片 63
图 9-63
第 9 页图片 64
图 9-64
第 9 页图片 65
图 9-65
第 9 页图片 66
图 9-66
第 9 页图片 67
图 9-67
第 9 页图片 68
图 9-68
第 9 页图片 69
图 9-69
第 9 页图片 70
图 9-70
第 9 页图片 71
图 9-71
第 9 页图片 72
图 9-72
第 9 页图片 73
图 9-73
第 9 页图片 74
图 9-74
第 9 页图片 75
图 9-75
第 9 页图片 76
图 9-76
第 9 页图片 77
图 9-77
第 9 页图片 78
图 9-78
第 9 页图片 79
图 9-79
第 9 页图片 80
图 9-80
第 9 页图片 81
图 9-81
第 9 页图片 82
图 9-82
第 9 页图片 83
图 9-83
第 9 页图片 84
图 9-84
第 9 页图片 85
图 9-85
第 9 页图片 86
图 9-86
第 9 页图片 87
图 9-87
第 9 页图片 88
图 9-88
第 9 页图片 89
图 9-89
第 9 页图片 90
图 9-90
第 9 页图片 91
图 9-91
第 9 页图片 92
图 9-92
第 9 页图片 93
图 9-93
第 9 页图片 94
图 9-94
第 9 页图片 95
图 9-95
第 9 页图片 96
图 9-96
第 9 页图片 97
图 9-97
第 9 页图片 98
图 9-98
第 9 页图片 99
图 9-99

本页图片

第 10 页图片 1
图 10-1
第 10 页图片 2
图 10-2
第 10 页图片 3
图 10-3
第 10 页图片 4
图 10-4
第 10 页图片 5
图 10-5
第 10 页图片 6
图 10-6
第 10 页图片 7
图 10-7
第 10 页图片 8
图 10-8
第 10 页图片 9
图 10-9
第 10 页图片 10
图 10-10
第 10 页图片 11
图 10-11
第 10 页图片 12
图 10-12
第 10 页图片 13
图 10-13
第 10 页图片 14
图 10-14
第 10 页图片 15
图 10-15
第 10 页图片 16
图 10-16
第 10 页图片 17
图 10-17
第 10 页图片 18
图 10-18
第 10 页图片 19
图 10-19
第 10 页图片 20
图 10-20
第 10 页图片 21
图 10-21
第 10 页图片 22
图 10-22

本页图片

第 11 页图片 1
图 11-1
第 11 页图片 2
图 11-2
第 11 页图片 3
图 11-3
第 11 页图片 4
图 11-4
第 11 页图片 5
图 11-5
第 11 页图片 6
图 11-6
第 11 页图片 7
图 11-7
第 11 页图片 8
图 11-8
第 11 页图片 9
图 11-9
第 11 页图片 10
图 11-10
第 11 页图片 11
图 11-11
第 11 页图片 12
图 11-12
第 11 页图片 13
图 11-13
第 11 页图片 14
图 11-14
第 11 页图片 15
图 11-15
全站分卷索引 · 8 卷
  1. 1第 1 卷
  2. 2第 2 卷
  3. 3第 3 卷
  4. 4第 4 卷
  5. 5第 5 卷
  6. 6第 6 卷
  7. 7第 7 卷
  8. 8第 8 卷