0

JSDocアノテーションを使用して、スーパークラスの保護されたインスタンスメソッドをサブクラスでパブリックにすることは可能ですか?具体的には、goog.ui.Controlから継承されたクラスがあります。goog.ui.Controlには、保護されたメソッドsetElementInternalがあります。別のクラスからこのメソッドにアクセスするために、サブクラスでそのアクセス修飾子をパブリックにしたいと思います。

4

2 に答える 2

0

直接ではありません。

メソッドを呼び出すパブリックである継承クラスに新しいメソッドを追加する必要があります@protected。このようなものが機能するはずです。

/**
 * My public wrapper around a protected method
 * @param {Element} element Root element for this component
 */
my.namespace.Control.prototype.setElement = function(element) {
    this.setElementInternal(element);
}
于 2013-02-14T21:29:09.020 に答える
0

答えを以下に示します。

「foo.js」

goog.provide('foo');

...

goog.inherits(foo,goog.ui.Control);

...

/** * @param {Element} 要素 */

foo.prototype.setElementInternalEncap = 関数 (要素) {

goog.bind(this.setElementInternal, this, element);

};

「bar.js」

goog.provide('バー');

goog.require('foo');

...

fooReference.setElementInternalEncap(要素);

于 2013-02-16T01:27:23.170 に答える