我正在尝试理解
这是我正在使用的代码:(fiddle)
我期望在控制台中打印出两个不同的结果,因为
你能解释一下原因吗?我错过了什么吗?console.log不会在调用时显示对象的当前状态吗?
提前感谢您的回答,最好的问候。
js原型
和类
的工作原理,并使用Chrome的console.log
打印并查看我的对象状态,同时添加新属性等。这是我正在使用的代码:(fiddle)
function Person(){}
Person.prototype.sayHello = function(){ alert("Hello"); };
Person.prototype.name = "Name";
console.log(Person.prototype) //1st console.log
Person.prototype.surname = "Surname";
console.log(Person.prototype); //2nd console.log
我期望在控制台中打印出两个不同的结果,因为
surname
属性是在第一个控制台日志之后添加的。但实际上,控制台输出如下所示:
surname
属性。你能解释一下原因吗?我错过了什么吗?console.log不会在调用时显示对象的当前状态吗?
提前感谢您的回答,最好的问候。
surname
在两者中都存在。如果你在等待第二个日志时打开第一个对象,则不会显示surname
。为什么呢? :O - BeNdErRconsole.log
不是异步的。但是控制台会保留对对象的实时引用,并且在控制台中展开对象是异步的。有时候是这样的,具体取决于你记录日志时控制台是否打开,以及其他因素。 - T.J. Crowder