gpt4 book ai didi

javascript - 存在的 Javascript 对象和访问属性的问题

转载 作者:行者123 更新时间:2023-11-29 18:36:36 25 4
gpt4 key购买 nike

我有这样的东西:

var test = {};

function blah() {
test[2] = 'filled';
}

blah(); // ! Hopefully confusion is now averted..

console.log(test);
//result test -> 2:"filled"

console.log(test[2]);
//result undefined

我不明白为什么我在第二个实例中得到“未定义”,而根据第一个实例,该对象的属性显然存在!

有没有人有什么想法?

谢谢

好吧,似乎人们对代码存在的上下文感到困惑,为了清楚起见,我现在添加了对 blah() 的调用。但请引用 Jeff B 回复下的评论!

下面是相关代码的示例:

mydb = ..... //gets created here with relevant credentials
var test = {};
mydb.transaction(
function(transaction) {
transaction.executeSql("select * from mytable;", [], function(transaction,result) {
var r = result.rows.item(0);
test[2] = r.title;
}, errorHandler);
});

console.log(test);
//result test -> 2:"the title"

console.log(test[2]);
//result undefined

@Dancrumb你提到的 Javascript 的单线程性给了我一个想法,我尝试了这个:

window.setTimeout(function(){ alert(test[2]); },2000);

成功了!我得到了提醒的预期值。您能否建议我如何在不使用上述“hack”的情况下解决这个问题?

最佳答案

因为你没有调用 blah()

另外,你想要:

var test = [];

或:

var test = new Array();

关于javascript - 存在的 Javascript 对象和访问属性的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587072/

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