1

在第 72 页的书中,我们有这个例子(见下文)。但是当我在 FF 和 NodeJS 中测试它时,实际上y.lastIndexis0并且x === yis false.

知道为什么书中的信息与实际行为之间存在这种不匹配吗?

function make_a_matcher() {
    return /a/gi;
}
var x = make_a_matcher();
var y = make_a_matcher();
// Beware: x and y are the same object!
x.lastIndex = 10;
document.writeln(y.lastIndex); // 10
4

1 回答 1

3

这很奇怪,但我认为这是一个错误,除非旧的 Javascript 解释器缓存正则表达式文字并返回相同的实例。

正如@fgb 在他的评论中提到的那样,ES3 标准允许解释器缓存文字,但这在 ES5 中受到限制,再次感谢@fgb。

无论如何,它被发布为未经确认的勘误表

于 2013-10-13T10:36:14.220 回答