gpt4 book ai didi

javascript - 为什么 RegExp Prototype 不能正常工作?

转载 作者:行者123 更新时间:2023-11-28 17:44:57 25 4
gpt4 key购买 nike

RegExp.prototype 仅适用于:

var a = /abc/g
a.tester()

var b = /xyz/
b.tester()

不适用于:

  1. /abc/g.tester()
  2. /abc/.tester()


有没有办法解决这个问题,以便三个都可以工作?

抬头
它需要是一个 RegExp.prototype
问题:原生 .test() 是如何做到的?



什么有效

RegExp.prototype.tester = function(s, v) {
console.log("I'm working")
console.log(this)
}

a = /abc/g
b = /xyz/
a.tester()
b.tester()




问题

RegExp.prototype.tester = function(s, v) {
console.log("I'm working")
console.log(this)
}

/abc/g.tester() //This is a problem
/abc/.tester() //This is a problem

最佳答案

这只是一个语法错误,而不是原型(prototype)继承的问题(调用 .test 而不是 .tester 不会产生任何影响)。使用分号!

RegExp.prototype.tester = function (s,v) {
console.log("I'm working")
console.log(this)
}; /*
^ */

/abc/g.tester(); // now it's not a problem
/abc/.tester(); // any more

这里发生的事情是解析器将您的代码解释为一个大语句:

… = function(){…} / abc / g.tester() / abc / .tester();

事实上,除法运算符 / 之后的属性访问 . 是一个意外的标记。

如果你想省略分号和let them be automatically inserted只要可能需要,您将 need to put one at the begin(, [, /, +, - 开头的每一行或`

关于javascript - 为什么 RegExp Prototype 不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46965567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com