Я довольно новый для JavaScript, и преобразование некоторого (очень старый) кода на что-то немного более современное и рефакторинг, и я в конечном итоге с чем-то вроде этогоJavascript вызова функции-члена из внутри функции члена
var MyClass = function(parms} {/*stuff*/}
MyClass.prototype = {
this_func(p1, p2) { /* do this */ },
that_func(args) { /* do that */ }
};
примечание У меня нет ключевого слова ES6 class
, но я хотел бы перейти к его использованию, как только он станет доступным для меня.
Проблема возникает, когда я хочу, чтобы позвонить this_func
изнутри that_func
и мне удалось закончить с этим искривления
that_func(args) {
//this.this_func(parm1, parm2) causes an error
myClass.prototype.this_func.call(this, parm1, parm2);
}
Есть ли более простой способ сделать это? И когда я получу полный es6, я просто смогу использовать this.this_func
?
Я посмотрел на имеющиеся вопросы на этом сайте, и ни один из них на самом деле не кажется, чтобы покрыть то, что я делаю (или по крайней мере не так, как я могу сопоставить с моей проблемой)
Разъяснение - класс используется как этот
var myInstance = new MyClass();
myInstance.that_func('xxx');
и я получаю ошибку о this_func
не известно (я не могу вспомнить, на данный момент, из-за того, чтобы быть далеко от кода в вопросе прямо сейчас)
Вы должны иметь возможность использовать 'this.this_func' прямо сейчас. Вот как это должно работать –
Однако, я думаю, вы объявляете неправильные прототипы. Не могли бы вы показать фактический код? –
Вот как это сработало с тех пор, как у brendan был мальчик –