2012-10-26 96 views
0

可能重复:
Why does javascript object show different values in console in Chrome, Firefox, Safari?绑定的JavaScript对象的属性

我很新的使用JavaScript的面向对象的概念。我试图了解javascript属性的绑定。 JavaScript是否按顺序执行下面的代码?

// main.js 
function NameClass(){ 
    this.name = "John" 
    this.age = 25 
} 

NameClass.prototype.change_my_name = function(new_name){ 
    this.name = new_name 
} 

NameClass.prototype.change_my_age = function(new_age){ 
    this.age = new_age 
} 


// main.html 
    <html> 
    <head> 
     <title>Javascript tutorial</title> 
     <script src="main.js"></script> 
     <script> 
      var nc = new NameClass() 

      console.log("nc before modification") 
      console.log(nc) // Prints Doe 

      nc.change_my_name("Doe") 

      console.log("nc after modification") 
      console.log(nc) // Prints Doe 
     </script> 
     </head> 
    <body></body> 
    </html> 

现在,这里有什么窍门?

  1. 为什么我看到“Doe”同时显示?
  2. 为了在第二次显示“John”和第二次显示“Doe”,我在这里使用了什么机制?
+1

我假设你使用的是Chrome?这是Chrome开发人员控制台中记录对象的已知错误。 – Shmiddty

+0

是的,我正在使用chrome! – Vineeth

+1

尝试改为记录'nc.name' – Shmiddty

回答

4

console.log()将不一定记录变量在尝试登录时的值。

+0

我明白了。谢谢(你的)信息。 – Vineeth

+0

...没有中断。用'提醒'做同样的事情。你会看到价值的变化。 –

+0

...或用QUnit测试。你会看到两个不同的值。 –