1

このようなクラスがあるとしましょう。

function kevin(name){
   this.name = name;
   this.methodKevin = function(){
        console.log(this.name);
   };
   var kevin = function(){
        console.log(this.name); 
   }
   function newKevin(){
        console.log(this.name);
   }
}
  1. javascriptでのそれらの違いは何ですか?.
  2. 私のクラスは完璧ですか? コンストラクター内に関数式を含めることはできますか?
4

1 に答える 1

2

それらがどのように呼び出されるかによって異なりますkevin

  1. methodKevinによって呼び出されない限り、ウィンドウ オブジェクトにnew kevinバインドされます。その場合、最上位のkevin関数オブジェクトにバインドされます。this.nameでインスタンス化された関数によって呼び出された場合にのみ機能しますnew
  2. var kevin親関数をスコープとする関数kevinであるため、その関数の外で呼び出されることはありません。そういう意味ではプライベートです。this.name動作しますが、name単独で十分です。
  3. 2と同じ
于 2012-12-31T00:15:41.853 に答える