抱歉,刚开始理解错了。我敲了一遍,是两个不同的对象,false。 function make_a_matcher () { return /a/gi; } var x = make_a_matcher(); var y = make_a_matcher(); x.index = 10; console.log(y.index); // undefined console.log(x === y); // false 我去查了下javascript高级程序设计。在ES3中正则表达式字面量共享一个实例,ES5改了过来。在中文版第三版104,105页,原文如下。 在ECMAScript 3中,正则表达式字面量始终会共享同一个RegExp实例,而使用构造函数创建的每一个新RegExp实例都是一个新实例。...ECMAScript 5明确规定,使用正则表达式字面量必须像直接调用RegExp构造函数一样,每次都创建新的RegExp实例。
抱歉,刚开始理解错了。我敲了一遍,是两个不同的对象,false。
我去查了下javascript高级程序设计。在ES3中正则表达式字面量共享一个实例,ES5改了过来。在中文版第三版104,105页,原文如下。