我正在尝试用 JavaScript 做一些工作,并且对这门语言很陌生,但对编程语言还不是。
class Key{
constructor(nm, keydata) {
var name = nm;
var data = keydata;
}
}
var KeySet = [];
for (i=0; i<5; i++){
KeySet.push(new Key("item " + i, "some data for " + i));
}
for (i=0; i<5; i++){
console.log(i,KeySet[i].name," ->",KeySet[i].data)
}
我在控制台得到这个:
0 undefined -> undefined 1 undefined -> undefined 2 undefined -> undefined 3 undefined -> undefined 4 undefined -> undefined
- 我什至可以构建一个对象数组吗?
- 如果是这样,上面的内容有什么问题吗?最好的方法是什么?
- 我是否必须执行诸如将数组项内容转换为 Key 对象之类的操作才能使用它?怎么办?
最佳答案
你就快到了!结果是未定义
,因为构造函数在其局部作用域中声明变量,而不是将这些变量定义为实例变量。
要定义实例变量,您需要使用 this
关键字绑定(bind)它们。请参阅下面的工作示例:
class Key {
constructor(nm, keydata) {
this.name = nm;
this.data = keydata;
}
}
var KeySet = [];
for (i = 0; i < 5; i++) {
KeySet.push(new Key("item " + i, "some data for " + i));
}
for (i = 0; i < 5; i++) {
console.log(i, KeySet[i].name, " ->", KeySet[i].data)
}
关于javascript - 如何在 JavaScript 中使用对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51718224/