我试图从 MyFunction 访问 myObject 内的变量 myVar,但出现此错误
Uncaught TypeError: Cannot read propperty 'myVar' of undefined
运行下面的代码时。
var myObject;
function MyObject(){
this.myVar = 500;
MyFunction();
}
function MyFunction(){
alert(myObject.myVar);
}
myObject = new MyObject();
我已阅读this但仍然不知道如何访问它。
最佳答案
当调用函数时,它会被执行,然后将结果返回给变量。
因此,函数首先执行,然后将结果传递回变量
var myObject; // 1. new variable, undefined
function MyObject(){ // 3. execute function
this.myVar = 500; // 4. set a property
MyFunction(); // 5. call next function
}
function MyFunction(){
alert(myObject.myVar); // 6. myObject is still undefined,
} // result hasn't returned yet
myObject = new MyObject(); // 2. call function - 7. When everything is done
// executing, the result
// is returned
换句话说,你不能这样做。
解决此问题的一种方法是对 MyFunction 进行原型(prototype)设计并保持 this
的值不变
function MyObject() {
this.myVar = 500;
this.MyFunction();
}
MyObject.prototype.MyFunction = function() {
alert(this.myVar);
}
var myObject = new MyObject();
关于javascript - 从另一个函数访问对象中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23456453/