Вот моя проблема, у меня есть следующий StatCharac объект:Неопределенный метод в JavaScript Object
function StatCharac (initVal) {
this.initVal = initVal;
this.val = initVal;
this.modifs = [];
this.getVal = function() {
var stat = this.val;
for (var i =0; i < this.modifs.length; i++) {
stat = this.modifs[i](stat);
}
return stat;
}
}
И когда я пытаюсь получить доступ к методу GETVAL, консоль говорит, что этот метод не определен. Я уже определил метод таким же образом в другом объекте, и все было в порядке. Я также попытался использовать атрибут prototype StatCharac, но он не работает ни ...
Что случилось?
EDIT: Когда я говорю, доступ к GETVAL это так:
console.log('message : ' + character.hp.getVal);
Я пытался сделать это для других методов, и если методы признается, его код должен появиться в сообщении.
Вот где я использую StatCharac:
function Character (nameCharac, id, hp, spell, owner) {
this.nameCharac = nameCharac;
this.id = id;
this.hp = new StatCharac(hp);
this.power = new StatCharac(0);
this.spell = spell;
this.pos = -1;
this.canMove = false;
this.canPlay = false;
this.owner = owner;
}
Когда я пытаюсь вызвать GETVAL() Я получаю следующее сообщение об ошибке:
Missing обработчика ошибок на 'гнездо'. TypeError: Object # не имеет метода getVal на Socket. (blabla \ app.js: 237: 55) ...
ОКОНЧАТЕЛЬНЫЙ РЕДАКТ: Хорошо, я нашел, где проблема. На самом деле, я копирую мои персонажи из этого массива:
var dbCharacters = [];
for (var i = 0; i < 44; i ++) {
dbCharacters[i] = new Character('PersoYolo'+(i+1), i, 100, null);
}
Для того, чтобы клонировать символы (и не только получить ссылку) Я использую эту функцию:
function clone (o) {
return JSON.parse(JSON.stringify(o));
}
Но после испытания, он появляется что эта функция клонирует только атрибуты объекта o, а не его метод. Итак, теперь я должен найти, как клонировать целый объект в JS.
Как вы пытаетесь получить доступ к методу getVal? Где этот код? – Pointy
Просьба указать, как вы вызываете StatCharac и как вы пытаетесь получить доступ к свойству. –
Что такое 'character'? Что такое 'character.hp'? – Oriol