javascript语言精粹

clipboard.png
来自语言精粹,xy是一个对象?个人感觉这是俩个完全不同的对象啊

阅读 3.3k
3 个回答

抱歉,刚开始理解错了。我敲了一遍,是两个不同的对象,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实例。

新手上路,请多包涵

就给的这些信息,确实是不同的对象。。:( 能说下所在页数吗?

新手上路,请多包涵

这是老版本相同的正则直接量不会重复创建的问题吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题