a = /\d+/.exec;
a("hello,123")
我收到以下错误:
Error: can't convert undefined to object
为什么a
作为未定义返回?
答案 0 :(得分:4)
a
是对RegExp.prototype.exec
函数本身的引用,实际上并不绑定到任何正则表达式。这些都可以起作用:
var a = /\d+/.exec('hello,123');
var rx = /\d+/,
a = rx.exec;
a.call(rx, 'hello,123');
undefined
来自this
函数内的exec
的内部引用。