gpt4 book ai didi

javascript - JS 对象不工作

转载 作者:行者123 更新时间:2023-12-01 05:39:28 26 4
gpt4 key购买 nike

我有一个相当复杂的对象,并且包含了一个简化版本(删除了不必要的功能)。当我启动它时它不起作用,我不知道为什么。 Safari 告诉我:[Error] TypeError: undefined is not an object (evaluating 'this.data.steps[index]')但我不知道为什么。代码如下:

function Stepper (url) {
this.index = 0;
this.url = url;
this.stepsn = 0;
this.data = {}
this.init = function () {
var XHR = $.getJSON(this.url, function (json) {
this.data = json;
this.stepsn = this.data.steps.length;
});
};
this.getstep = function (index) {
return this.data.steps[index];
};

this.init();
}
\\Instantiation
var url = "lesson.json"; //lession.json is valid(I checked)
var stepper = new Stepper(url);

感谢您的帮助,如果您愿意的话。

Safari 8.0.7  Included jquery 1.11.3

最佳答案

您在评论中使用的正斜杠是语法错误。此外,您的 this.data 对象中没有 steps 键,这就是该行抛出错误的原因。

我还在您的 .getJSON 调用中使用了 bind,以便您引用 Stepper 对象。请参阅下面的固定代码:

function Stepper (url) {
this.index = 0;
this.url = url;
this.stepsn = 0;
this.data = {}
this.init = function () {
var XHR = $.getJSON(this.url, function (json) {
this.data = json;
this.stepsn = this.data.steps.length;
}).bind(this);
};
this.getstep = function (index) {
return this.data.steps[index];
};

this.init();
}
//Instantiation
var url = "lesson.json"; //lession.json is valid(I checked)
var stepper = new Stepper(url);

关于javascript - JS 对象不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31660673/

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