我编写了一个小程序,它从两个用户输入中获取单词的英语和西班牙语版本,并将它们存储为对象:
function Dictionary(english, foreign){
this.english = english;
this.foreign = foreign;
}
然后将这些对象存储在一个数组中; objectsArray []。 然后我为“Dictionary”原型分配一个方法,使输入的字符串变为大写:
Dictionary.prototype.capMethod = function(){
this.english.toUpperCase();
this.foreign.toUpperCase();
}
一旦用户输入了所有翻译(稍后将对其进行测试),我会尝试调用字典的capMethod:
for(var x in objectsArray){
objectsArray[x].capMethod();
console.log(objectsArray[x].english + objectsArray[x].foreign + typeof objectsArray[x].english); }
然而,控制台并未建议将它们更改为大写。当英语和外部值仍然在输入时返回给用户(程序中的后面)时,这证实了这一点。
我强调该程序的其他部分我可以进行此更改,但不理解我的错误,这似乎是另一种方式做错的理由。
我确实需要大写存储在字典中的字符串,并且周围有很多代码,所以JSfiddle会很麻烦,我希望上面的内容足够,因为问题似乎真的在于我的方式。 m引用对象值。我也知道有几种微妙的不同方式来引用对象属性,但我是javascript的新手,我正在努力绕过它。
我在这里做错了什么?
答案 0 :(得分:1)
在您的函数中
Dictionary.prototype.capMethod = function(){
this.english.toUpperCase();
this.foreign.toUpperCase();
}
' toUpperCase()'的结果没用过。
this.english = this.english.toUpperCase();
会更好。
存储这样的对象会不适合你?:
function store(english,foreign){
objectsArray.push({
english:english.toUpperCase(),
foreign:foreign.toUpperCase())
}