0

重複の可能性:
Chrome、Firefox、Safariのコンソールでjavascriptオブジェクトが異なる値を表示するのはなぜですか?

私はjavascriptのOOP概念を使用するのはまったく新しいです。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」を表示し、2回目に「Doe」を表示するためにここで使用するメカニズムは何ですか?
4

1 に答える 1

4

console.log()変数をログに記録しようとしたときに変数が持っていた値を必ずしもログに記録するわけではありません。

于 2012-10-26T17:43:42.057 に答える