JSON 形式でデータを生成するための単純なインターフェイスを作成しようとしています。最初のオブジェクトを正常に追加できます。しかし、別のものを追加しようとすると (「myDict」配列オブジェクトに追加します。以下のコードを参照)、元のオブジェクトの値が上書きされ、空のキー/値のペアも追加されているようです。
これは、「myDict」に新しいインスタンスが追加されるたびに「createObj」オブジェクトの新しいインスタンスを作成しないことに関連していると推測しています。そのため、新しいインスタンスを動的に作成する方法を見つけようとしています。これまでの私のコードは次のとおりです。
// VARIABLES
var myDict = [];
// CLASSES
function createObj() {
this.myObj = {};
}
createObj.prototype.newPair = function() {
this.newKey = document.getElementById('key').value;
this.newValue = document.getElementById('value').value;
this.myObj[this.newKey] = this.newValue;
console.log(this.myObj);
document.getElementById('key').value = null;
document.getElementById('value').value = null;
document.getElementById('key').focus();
}
createObj.prototype.addIt = function() {
myDict.push(this.myObj);
console.log(myDict);
}
// ACTIONS
$('#createNew').click(function() {
$('#item').show();
var myItem = new createObj();
$('button#create').click(function() {
myItem.newPair();
});
$('#done').click(function() {
$('#item').hide();
myItem.addIt();
});
});
ここで同様のスタック オーバーフローの質問を確認しました:オブジェクト インスタンスを動的に作成するための規則は何ですか?
. . . しかし、それは私の問題に対する答えを提供していないようです。参考になる場合は、JSFiddle をご覧ください: http://jsfiddle.net/mysterexs/rffmV/
注: JSFiddle は出力を表示しませんが、すべてのコードを提供し、より多くのコンテキストを提供します。どんな助けでも大歓迎です。