[英]JavaScript object property returns undefined
我已经浏览了许多线程,在Google上搜索了很多,并尝试自行解决此问题,但我做不到。 我正试图解决我的问题。
我收到存储在本地存储中的字符串。
var c = localStorage.getItem('item');
然后,我将此值传递给构造函数,以将该值分配给对象的属性。 这是类和构造函数。
class dataSet {
constructor ( item ) {
this.item = item;
}
get item() {
return this._item;
}
借助按钮,单击时调用以下函数:
function buildSet() {
var currentSet = new dataSet( c );
document.write(currentSet.item);
document.write(c);
}
document.write(c)只是一个测试,以查看是否存储了任何值,是的,存储了我的“ test”字符串。 结果,我得到:
undefinedTest
我对JavaScript还是很陌生,我知道以某种方式dataset对象没有获得该值并且没有分配它,但是我不知道如何解决它。 我确实阅读了关于stackoverflow的该主题的每个现有线程,但无法提出解决方案。 谢谢您的时间。
您的错误在构造函数中!
您缺少_
应该是this._item = item;
代替this.item = item;
因此,您的getter,即:
get item() {
return this._item;
}
由于没有_item
属性,因此返回undefined。
正如之前有人对您发表评论一样,这里的问题是因为您在构造函数中缺少_。 但是,如果这不能解决您的问题,则可能是问题与localStorage中项目的值有关。 这里有一个使用简单String的代码示例:
var c = 'hello world'; class dataSet { constructor (item) { this._item = item; } get item () { return this._item; } } function buildSet() { var currentSet = new dataSet(c); alert(currentSet.item); alert(c); }
<!DOCTYPE html> <html> <body> <button onclick="buildSet()">click me</button> </body> </html>
让我们做一些检查,看看代码的行为,因为它按预期工作,唯一的是您缺少一些检查和一些字符。
//make sure that C has a value, maybe it is undefined from here. var c = "fakeItem"; // also lets do a test with an undefined value. var d; class dataSet { constructor(item) { this._item = item; } get item() { //you were missing a _ here. return this._item; } } function buildSet() { var currentSet = new dataSet(c); //this works because C is defined var dSet = new dataSet(d); //this does not work because D is not defined // it works as expected! console.log(currentSet.item); document.write("currentSet.item: " + currentSet.item); document.write("\\n<br>"); document.write("c: " + c); document.write("\\n<br>"); // also works as expected, it will show undefined console.log(dSet.item); document.write("dSet.item: " + dSet.item); document.write("\\n<br>"); document.write("d: " + d); }
<button onclick="buildSet()">SET TEST</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.