Javascript 内部函数无法访问外部变量函数

Javascript 内部函数无法访问外部变量函数,javascript,Javascript,我创建了以下JSFIDLE,它突出了我的问题。 我是JavaScript新手,尝试创建一个对象、字段和方法。 我无法获取访问字段变量的方法。您不需要this.myArray。单独使用myArray就足够了(而且有效)。alert(myArray)应该可以正常工作,我认为您尝试使用此运算符访问局部变量是错误的,因此下面是一个工作示例 var ExampleObject = function() { var myArray = new Array(1,2,3); this.exampl

我创建了以下JSFIDLE,它突出了我的问题。

我是JavaScript新手,尝试创建一个对象、字段和方法。
我无法获取访问字段变量的方法。

您不需要
this.myArray
。单独使用
myArray
就足够了(而且有效)。

alert(myArray)
应该可以正常工作,我认为您尝试使用此运算符访问局部变量是错误的,因此下面是一个工作示例

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

链接:

此的内容随每个功能的范围而变化。但是,
myArray
将对内部函数可见。例如:

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

您混淆了两种类型的变量:局部变量和成员变量
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();​
仅使用成员变量的解决方案:

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();​

建议您使用数组文字
[]
来创建数组,而不是
新建数组()你很久以前就回答了这个问题,但我认为你的第二个答案行不通。在这种情况下,“this”指的是内部函数,而不是外部函数。试试看。它起作用了。这是因为
这个
指的是“点之前的东西”,在本例中是
exampleObj