0

次のコードを検討してください。

 <script>
  person={
          firstname:"John",
          lastname:function(){alert(this.firstname)}
         }
          person.lastname();
 </script>

関数内のどこからでもローカル変数にアクセスできるように、オブジェクトのプロパティにアクセスするには、なぜこの キーワードを使用する必要があるのでしょうか?オブジェクト内にいるので、このキーワードの使用は必須ですか?

4

2 に答える 2

2

これは、JavaScript で を使用するfirstnameと、インタープリターが現在のスコープでその変数を検索し、後ですべての親スコープで検索するためです。しかし、オブジェクトはスコープを形成していません。

firstnameそのため、特別な変数 - を介してアクセスする必要がありますthis

ヒント:関数はスコープを作成しているため、例:

 var person = function () {
     var firstname = "John";

     return {
         lastname: function () {
             alert(firstname)
         }
     };
 }();

なしで動作しthisます。

于 2013-04-04T06:29:49.323 に答える