Я пытаюсь обновить элементы в существующем экземпляре объекта.Когда я это делаю, некоторые из того, что я предполагаю, являются унаследованными характеристиками, которые отображаются в proto в Chrome Dev Tools.
//this is a Chrome Dev Tools view of the instantiated object I attempted to update/modify;
//this is rejected by a later function I'm using in the xAPI tincan-min.js library
statement.target.definition.choices: Array(5)
0:
description: {en-US: "Apple"}
id: "kcContent.questions[3].answerChoices[0]"
__proto__:
constructor: ƒ Object()
hasOwnProperty: ƒ hasOwnProperty()
isPrototypeOf: ƒ isPrototypeOf()
propertyIsEnumerable: ƒ propertyIsEnumerable()
toLocaleString: ƒ toLocaleString()
toString: ƒ toString()
valueOf: ƒ valueOf()
__defineGetter__: ƒ __defineGetter__()
__defineSetter__: ƒ __defineSetter__()
__lookupGetter__: ƒ __lookupGetter__()
__lookupSetter__: ƒ __lookupSetter__()
get __proto__: ƒ __proto__()
set __proto__: ƒ __proto__()
//this is a Dev Tools view of a "placeholder" instantiated objects
1: TinCan.InteractionComponent // how do I preserve the 'TinCan.InteractionComponent' characteristic when I update this instanced object?
description: {en-US: "pending"}
id: "pending"
__proto__:
LOG_SRC: "InteractionComponent"
asVersion: ƒ (a)
getLangDictionaryValue: ƒ (a,b)
init: ƒ (a)
log: ƒ (a,b)
__proto__: Object
//these are additional "placeholder" objects--all of which have the "TinCan.InteractionComponent" prefix, which is what I'm losing when I try to update elements using the function below
2: TinCan.InteractionComponent {id: "pending", description: {…}}
3: TinCan.InteractionComponent {id: "pending", description: {…}}
4: TinCan.InteractionComponent {id: "pending", description: {…}}
length: 5
__proto__: Array(0)
//This is the function I'm using to update the instantiated object:
function populateStatementChoices(callback){
console.log("Populating statement choices.");
statement.target.definition.choices.forEach(function(item, index) {
function setStatementChoiceID(num){
//this updates the key/values but removes 'TinCan.InteractionComponent' from the object
statement.target.definition.choices[num] = {
id:"kcContent.questions[" + choiceQuestionIndex + "].answerChoices[" + num + "]",
description:{"en-US":kcContent.questions[choiceQuestionIndex].answerChoices[num].choiceText},
}
setStatementChoiceID(index);
});
if (typeof callback === 'function'){
callback();
}
};
Сохранение характеристик "TinCan.InteractionComponent" - вот чтоЯ не могу понять.Надеюсь, кто-то видел это раньше и может указать мне правильное направление.Спасибо за ваше время и внимание;Я ценю это больше, чем ты знаешь!