通常我會推薦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();
有你不想做一個特別的理由'this.C =函數(){...}'並把它作爲'this.C()'? – ninjagecko
這將允許C調用實例/實質上暴露它。因爲它應該是一個輔助方法,所以沒有理由被暴露。我想你可以說我的主要挫折是輔助方法不能被子類繼承。 –