以下代码在 Firefox 中正常工作,但在 Chrome 中不能正常工作?如果注释掉第 15 行以防止第 7 行出现错误(找不到 this.update()),代码将继续正常执行。我不明白为什么第一组定义与第一组不同。
if (typeof RegionUpdater == "undefined") {
function RegionUpdater(param1, param2, param3) {
this.paramA = param1;
this.paramB = param2;
this.paramC = param3;
this.update();
}
RegionUpdater.prototype.update = function() {
alert("hi there");
};
}
var ru = new RegionUpdater("1", 2, "3");
function LolUpdater(param1, param2, param3) {
this.paramA = param1;
this.paramB = param2;
this.paramC = param3;
this.update();
}
LolUpdater.prototype.update = function() {
alert("hi there");
};
var lu = new LolUpdater(1, 2, 3);
我在这里有一个 jsfiddle 设置:http: //jsfiddle.net/XhbZ8/2/
编辑:我能想出的唯一想法是 Chrome 正在进行某种推测性执行,但事实上我在 IE8 中也遇到了同样的问题,这让我不太愿意相信这种情况。