谷歌chrome浏览器的javascript构造器被窃听?
可能重复:谷歌chrome浏览器的javascript构造器被窃听?,javascript,google-chrome,Javascript,Google Chrome,可能重复: 给定以下脚本: var Test = function () { console.log("constructor"); this.positions = []; console.log(this.positions); console.log("constructorEnd"); this.addPosition = function () { console.log(
给定以下脚本:
var Test = function () {
console.log("constructor");
this.positions = [];
console.log(this.positions);
console.log("constructorEnd");
this.addPosition = function () {
console.log(this.positions);
var i = this.positions.length;
this.positions[i] = "aa";
console.log(this.positions);
}
}
var t = new Test();
console.log("constructed");
t.addPosition();
}
预期结果是:
constructor
[]
constructorEnd
constructed
[]
["aa"]
这是我在使用firebug时看到的。
chrome上的相同脚本(linux,16.0.912.21 dev)给了我:
constructor
["aa"]
constructorEnd
constructed
["aa"]
["aa"]
这是什么意思??
在chrome中添加一个断点以查看发生了什么,使其工作(与firefox的输出相同)!
下面是一个测试用例:
感谢您,Chrome在控制台中显示对象时不会克隆对象,因此它将始终显示当前状态。要记录某个位置的状态,请使用jQuery的
$.extend({},yourObject)
来记录克隆。这是Chrome控制台的问题,而不是您的代码。无法可靠地“打印”对象的状态。正如Felix所说,这是Chrome控制台的一个bug/问题。但您可以编写自己的日志函数:好的,Felix和ComFreek是对的,这是chrome控制台的问题。关于这一点,chrome有没有公开的问题?感谢您仅找到未经确认的错误报告: