5

私は自分の問題を浮き彫りにする次のjsfiddleを作成しました。 http://jsfiddle.net/UTG7U/

var ExampleObject = function() {
   var myArray = new Array();
   this.example = function() {
       alert(this.myArray);
   };
}

var exampleObj = new ExampleObject();
exampleObj.example();​

私はJavaScriptを初めて使用し、オブジェクト、フィールド、およびメソッドを作成しようとしています。メソッドを取得してフィールド変数にアクセスできません。

4

5 に答える 5

7

ローカル変数とメンバー変数の 2 種類の変数を混同しています。var myArrayローカル変数です。this.myArrayメンバー変数です。

ローカル変数のみを使用したソリューション:

var ExampleObject = function() {
   var myArray = new Array(); // create a local variable
   this.example = function() {
       alert(myArray); // access it as a local variable
   };
}

var exampleObj = new ExampleObject();
exampleObj.example();​

メンバー変数のみを使用したソリューション:

var ExampleObject = function() {
   this.myArray = new Array(); // create a member variable
   this.example = function() {
       alert(this.myArray); // access it as a member variable
   };
}

var exampleObj = new ExampleObject();
exampleObj.example();​
于 2012-09-02T20:10:19.193 に答える
6

この演算子を使用してローカル変数にアクセスしようとしましたが、これは間違っています。これが実際の例です

var ExampleObject = function() {
   var myArray = new Array(1,2,3);
   this.example = function() {
       alert(myArray);
   };
}
var exampleObj = new ExampleObject();
exampleObj.example();​

リンク: http://jsfiddle.net/3QN37/

于 2012-09-02T19:41:40.563 に答える
1

は必要ありませんthis.myArray。単独で使用するmyArrayだけで十分です(そして機能します)。

于 2012-09-02T19:41:22.820 に答える
1

alert(myArray);うまくいくはずです

于 2012-09-02T19:41:37.957 に答える
1

各機能の範囲によって何thisが変わるか。ただし、myArray内部関数には表示されます。例:

var ExampleObject = function() {
   var myArray = new Array();
   this.example = function() {
       alert(myArray);
   };
}
var exampleObj = new ExampleObject();
exampleObj.example();​
于 2012-09-02T19:42:31.730 に答える