|
|
@ -9,6 +9,7 @@ isTwoCNChar("提交") |
|
|
|
在这里 isTwoCNChar 是使用 bind 改变作用域后生成的新函数赋值的,它的作用域为 rxTwoCNChar,在这里 rxTwoCNChar.test.bind 实际上相当于 RegExp.prototype.test.bind,它们效果实际上是一致的 |
|
|
|
在这里 isTwoCNChar 是使用 bind 改变作用域后生成的新函数赋值的,它的作用域为 rxTwoCNChar,在这里 rxTwoCNChar.test.bind 实际上相当于 RegExp.prototype.test.bind,它们效果实际上是一致的 |
|
|
|
|
|
|
|
|
|
|
|
1. 为什么需要使用 bind 方法改变作用域? |
|
|
|
1. 为什么需要使用 bind 方法改变作用域? |
|
|
|
`rxTwoCNChar.test` 这一行作用相当于 `RegExp.prototype.test` ,将 RegExp 原型中的 test 方法赋值给 isTwoCNChar,此时 test 方法并没有执行所以并不存在作用域, |
|
|
|
`rxTwoCNChar.test` 这一行作用相当于 `RegExp.prototype.test` ,不从 rxTwoCNChar 实例中调用,所以执行时的作用域并不会指向 rxTwoCNChar, |
|
|
|
1. 不使用 bind 时 rxTwoCNChar.test 指向谁? |
|
|
|
1. 不使用 bind 时 rxTwoCNChar.test 指向谁? |
|
|
|
1. 严格模式下 this 指向 |
|
|
|
1. 严格模式下 this 指向 undefined |
|
|
|
|
|
|
|
2. 非严格模式下 this 指向 global |