Как нет нет частной поддержки методы еще в Javascript, я обычно просто объявить нормальную функцию вне тела класса и обеспечиваю this
в качестве аргумента:super.method контекста обработки в ES6
class Foo {
constructor() {
_doPrivateStuff(this);
}
}
function _doPrivateStuff(that) {
that.bar() // private stuff
}
export default Foo;
Но как я могу Асесс super.method таким образом?
function _doPrivateStuff(that) {
super.method(); // error, 'super' outside of function or class
}
Кроме того, есть хорошая причина, почему я не должен использовать «частные» функции, как это?
Btw, я попробовал только это на Бабеля, и используя _doPrivateStuff.bind(this)()
вместо использования that
не работает либо
Почему бы не сделать это в конструкторе? Do 'super.method' в конструкторе – Li357
для моего варианта использования это будет слишком много обхода, у меня на самом деле есть функция более высокого порядка, которая создает некоторые функции, поэтому я могу использовать их как методы (полагаясь на super.method), I удалось найти хакерское обходное решение с использованием функций стрелок в конструкторе для определения методов оттуда и использования супер внутри, но это далеко не изящно и даже из любопытства, я хотел бы знать, можно ли обрабатывать контекст «супер» – Faccion