我有一个基类,它有一个受保护的方法foo和一个子类,它希望允许公共访问foo。由于这种方法会经常被调用,因此保存不必要的函数调用会很棒。是否有“更好”的解决方案来实现这一目标?我目前的黑客攻击:
abstract class A {
protected foo(X:T) {...}
}
class B extends A {
foo(X:T) {super.foo(X);}
}
B.prototype.foo = (<any>A.prototype).foo;
在A中公开foo不是一种选择,因为A的所有其他子类只能在内部访问foo。只有特殊的孩子B才允许从外面访问foo。
答案 0 :(得分:1)
在这种情况下,附加调用的性能影响应该足够小,可以忽略或只留给虚拟机进行优化。
在子类中公开方法更为明确。