Class typescript中私有静态函数和公共静态函数的区别是什么?
在angular2服务的上下文中;typescript中私有静态函数和公共静态函数的区别是什么Class typescript中私有静态函数和公共静态函数的区别是什么?,class,angular,typescript,static,Class,Angular,Typescript,Static,在angular2服务的上下文中;typescript中私有静态函数和公共静态函数的区别是什么 public static getUserStockList(): Stock[] { /* TODO: implement http call */ return WATCHLIST; } vs 编辑: 什么时候可以在私有函数上使用私有静态函数?可以从类的实例调用私有静态方法。 例如: interface Data { // ... } interface Str
public static getUserStockList(): Stock[] {
/* TODO: implement http call */
return WATCHLIST;
}
vs
编辑:
什么时候可以在私有函数上使用私有静态函数?可以从类的实例调用私有静态方法。
例如:
interface Data {
// ...
}
interface StrictData {
// ...
abstract class MyClass {
protected constructor(data: StrictData) {
// ...
}
}
class AnotherClass extends MyClass {
private static normalizeData(data?: Data | StrictData): StrictData {
// ...
}
constructor(data?: Data | StrictData) {
super(AnotherClass.normalizeData(data));
}
}
AnotherClass.normalizeData可以从实例中访问,编译器对此没有问题。
然而,这:
console.log(AnotherClass.normalizeData({}));
将导致:
属性“normalizeData”是私有的,只能在类中访问
“另一类”
可以从类的实例调用私有静态方法。
例如:
interface Data {
// ...
}
interface StrictData {
// ...
abstract class MyClass {
protected constructor(data: StrictData) {
// ...
}
}
class AnotherClass extends MyClass {
private static normalizeData(data?: Data | StrictData): StrictData {
// ...
}
constructor(data?: Data | StrictData) {
super(AnotherClass.normalizeData(data));
}
}
AnotherClass.normalizeData可以从实例中访问,编译器对此没有问题。
然而,这:
console.log(AnotherClass.normalizeData({}));
将导致:
属性“normalizeData”是私有的,只能在类中访问
“另一类”
您好,我认为区别在于函数的范围。因此,在您的类之外,公共也是可见的(例如,如果您在服务中这样做的话)。。二等兵没有。。仅在类中可见与任何其他OO语言相同,private
仅对类本身的实例可见,protected
仅对类和扩展类的实例可见,并且public
对用户可见all@NitzanTomer静态方法是类上的成员,因此类的任何实例都不能调用它们。那么,公共静态方法和私有静态方法之间有什么区别呢?这是否意味着其他类可以调用这些静态类方法,而私有静态类只能在定义的类中调用?嗨,我认为区别在于函数的范围。因此,公共类在类之外也是可见的(例如,如果您在服务中这样做的话)。。二等兵没有。。仅在类中可见与任何其他OO语言相同,private
仅对类本身的实例可见,protected
仅对类和扩展类的实例可见,并且public
对用户可见all@NitzanTomer静态方法是类上的成员,因此类的任何实例都不能调用它们。那么,公共静态方法和私有静态方法之间有什么区别呢?这是否意味着其他类可以调用这些静态类方法,而私有静态类只能在定义的类中调用?