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