You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
681 B
681 B
关于 bind 的用法:
const rxTwoCNChar = /^[\u4e00-\u9fa5]{2}$/;
const isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);
isTwoCNChar("提交")
- 为什么需要使用
bind
方法改变作用域?rxTwoCNChar.test
这一行赋值相当于RegExp.prototype.test
直接从 RegExp 原型中取 test 方法 ,不从RegExp 实例rxTwoCNChar
中调用,所以执行时的作用域并不会指向rxTwoCNChar
,需要使用bind
函数生成并返回一个具有指定作用域的新函数 - 不使用 bind 时
rxTwoCNChar.test
作用域指向谁?- 严格模式下
this
指向undefined
- 非严格模式下
this
指向global
- 严格模式下