Javascript 其中浏览器是只创建一次的正则表达式文本

Javascript 其中浏览器是只创建一次的正则表达式文本,javascript,regex,Javascript,Regex,我正在阅读《Javascript模式》一书,其中一个关于创建正则表达式文本的示例在MacOSX上的Chrome版本36.0.1985.125中并不一致 下面是一个例子 function getRE() { var re = /[a-z]/; re.foo = "bar"; return re; } var reg = getRE(), re2 = getRE(); console.log(reg === re2); //true according to bo

我正在阅读《Javascript模式》一书,其中一个关于创建正则表达式文本的示例在MacOSX上的Chrome版本36.0.1985.125中并不一致

下面是一个例子

function getRE() {
    var re = /[a-z]/;
    re.foo = "bar";
    return re;
}

var reg = getRE(),
    re2 = getRE();

console.log(reg === re2); //true according to book
reg.foo = "baz";
console.log(re2.foo); //baz according to book
在这个版本的chrome中,控制台中的第一行是false,第二行仍然是“bar”


然后,他们在ES5中继续说,文字每次都会创建新对象。这个版本的chrome是否实现ES5?如果是这样的话,我还以为所有的浏览器都是3减去一些增强版。

所有现代浏览器都实现了ECMAScript 5。这是给你的…然而,我刚刚在IE8中测试了这段代码,它没有给出书中描述的结果。哈哈,听起来像是可能的勘误:PCould。我还测试了IE6和IE7。同样的结果。啊,我们开始了。刚刚在Firefox1中测试过,它提供了书中描述的结果。所以他们没有完全偏离目标。