gpt4 book ai didi

javascript - 在 JavaScript 中访问对象的枚举成员

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

我正在尝试将“选项”对象传递给另一个对象的构造函数。选项包含我尝试在另一个文件中读取的枚举。

js/mainApp.js:

square = new World(20, 20, null, 0);

var opts = new Options(MODE.SINGLE, REGION.MIDDLE_EAST);
world = new World(0, 0, "img/whatever.png", opts);

js/options.js:

var MODE = {
SINGLE : 1,
MULTI : 2
};

var REGION = {
MIDDLE_EAST : { xTranslate : -2300, yTranslate: -700, scale : 1.2}
};

function Options(MODE, REGION) {
this.mode = MODE;
this.region = REGION;
}

现在,在 World 构造函数中,我收到第二个警报的错误“opts.region is undefined”。由于某种原因,第一个警报显示预期的“{ xTranslate : -2300, yTranslate: -700, scale : 1.2}

js/options.js:

var World = ExtendingSomething.extend(
{
initialize: function(x, y, imageURL, opts) {
alert (JSON.stringify(opts.region));
alert (JSON.stringify(opts.region.scale));
...
}
}
);

编辑:我添加了一些信息

我不明白为什么在工作时会收到此错误 is undefined in this jsfiddle (感谢 Thomas C. G. de Vilhena 的创作)。

也许这是我使用不同文件的问题?还是:为什么调用opts.region没有问题,但是一旦我调用opts.region.scale,错误opts.region是出现未定义(不是 opts.region.scale!)。

<script type="text/javascript" src="js/mainApp.js"></script>
<script type="text/javascript" src="js/options.js"></script>
<script type="text/javascript" src="js/world.js"></script>

编辑:我需要添加另一行代码来理解问题

最佳答案

问题是构造函数调用参数错误。应该进行某种类型检查,否则会给出 TypeError。

删除对构造函数的任何错误调用或添加检查

square = new World(20, 20, null, 0);

关于javascript - 在 JavaScript 中访问对象的枚举成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20785432/

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