From 2838eae9b55256ed01cc3a7408d3aa6eaff56f23 Mon Sep 17 00:00:00 2001 From: YuJian Date: Mon, 27 Jun 2022 17:14:35 +0800 Subject: [PATCH] vault backup: 2022-06-27 17:14:35 --- .../Button.md => 随时随地/关于 bind 的使用探索.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename Antd 的深入尝试/Button.md => 随时随地/关于 bind 的使用探索.md (76%) diff --git a/Antd 的深入尝试/Button.md b/随时随地/关于 bind 的使用探索.md similarity index 76% rename from Antd 的深入尝试/Button.md rename to 随时随地/关于 bind 的使用探索.md index f7a13be..f719f88 100644 --- a/Antd 的深入尝试/Button.md +++ b/随时随地/关于 bind 的使用探索.md @@ -1,4 +1,4 @@ -## 关于 bind 的用法: +在看 Antd 的源码时看到下面这一段,是有关 bind 的使用方法,代码不多但是深入研究的话还是有不少知识盲区的 ```typescript const rxTwoCNChar = /^[\u4e00-\u9fa5]{2}$/; @@ -7,7 +7,7 @@ isTwoCNChar("提交") ``` 1. 为什么需要使用 `bind` 方法改变作用域? - `rxTwoCNChar.test` 这一行赋值相当于 `RegExp.prototype.test` 直接从 RegExp 原型中取 test 方法赋值 ,而不是通过 RegExp 实例 `rxTwoCNChar` 中调用函数,所以执行时的作用域并不会指向 `rxTwoCNChar`,需要使用 `bind` 函数生成并返回一个具有指定作用域的新函数 + `rxTwoCNChar.test` 这一行赋值相当于 `RegExp.prototype.test` 直接从 RegExp 原型中取 test 方法赋值 ,而不是通过 RegExp 实例 `rxTwoCNChar` 中调用函数,所以执行时的作用域并不会指向 `rxTwoCNChar`,需要使用 `bind` 函数生成并返回一个具有指定作用域的新函数。 1. 不使用 bind 时 `rxTwoCNChar.test` 作用域指向谁? 1. 严格模式下 `this` 指向 `undefined` 2. 非严格模式下 `this` 指向 `global` \ No newline at end of file