2012-10-26 15 views
0

가능한 중복은 :
Why does javascript object show different values in console in Chrome, Firefox, Safari?자바 스크립트 객체의 바인딩 속성

나는 자바 스크립트의 OOP 개념을 사용하는 아주 새로운 해요. 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

예, 크롬을 사용하고 있습니다. – Vineeth

+1

'nc.name'을 대신 기록하십시오. – Shmiddty

답변

4

console.log()은 로그인 할 때 변수의 값을 기록하지 않습니다.

+0

나는 본다. 정보 주셔서 감사합니다. – Vineeth

+0

... 인터럽트가 없습니다. '경고'로 같은 일을하십시오. 값 변경이 표시됩니다. –

+0

... 또는 QUnit으로 테스트하십시오. 두 가지 다른 값을 볼 수 있습니다. –

관련 문제