2012-10-26 42 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測試。你會看到兩個不同的值。 –