Обычно я бы порекомендовал myFunc.apply
и myFunc.eval
; это то, что я интерпретирую как «относительно базового класса» в javascript.
Однако, исходя из вашего названия, вы говорите «внутри области действия базового класса»; если я правильно предполагаю, что вы говорите о замыканиях и можете ссылаться на переменные во внешних функциях, это невозможно, за исключением, возможно, сохранения точки входа в замыкании, в которую вы можете передавать запросы в стиле eval ... но если вы сделать это, вы могли бы также иметь объект, как this._private.C
.
Если вы пытаетесь сохранить конфиденциальность, не стоит беспокоиться об этом в javascript.
Если вы укажете мотивацию для this.C = function(){...}
и обозначите ее как this.C()
, я смогу дать более четкий ответ.
" Это позволило бы вызывать C на экземплярах / по существу раскрывать его. Нет причин для его показа, поскольку он должен быть вспомогательным методом. Думаю, вы могли бы сказать, что мое основное разочарование заключается в том, что вспомогательные методы не может наследоваться подклассами."--OP
В таком случае, это действительно не личное. Однако, что вы можете сделать, это определить свой вспомогательный метод, где он принадлежит: соответственно во внешней области видимости. =) Например:
(function(){
var C = function () {
alert('I am C');
}
base = function () {
this.A = function () {
this.B();
}
}
sub = function () {
this.B = function () {
C();
}
}
})();
sub.prototype = new base();
(new sub()).A();