gpt4 book ai didi

javascript - 从另一个函数访问对象中的变量

转载 作者:行者123 更新时间:2023-11-28 13:33:01 25 4
gpt4 key购买 nike

我试图从 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();

FIDDLE

关于javascript - 从另一个函数访问对象中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23456453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com