Основное различие между статическим методом / свойством и нестатическим заключается в том, что: на уровне памяти будет создана часть памяти для статических полей, которая будет использоваться всеми объектами в классе.Так что это работает в C # или Java.
Для JavaScript это поведение было реализовано в ES6 + .Но для более ранних версий Ecma Scripts машинописный текст эмулирует этот случай.
В вашем случае метод myMethod()
может использоваться как способ скрыть сложную ресурсоемкую функциональность не привязанного к конкретному экземпляру классаи скрыт от конечного пользователя.
См. этот код:
class A {
protected _p: string;
constructor() {
this._p = "A";
}
public someMethod(value: string) {
A.myMethod(this._p + value);
}
private static myMethod(p:string) {
console.log(p);
}
}
class B extends A {
constructor() {
super();
this._p = "B";
}
}
var a1 = new A();
a1.someMethod("_1");
var a2 = new A();
a2.someMethod("_2");
var b1 = new B();
b1.someMethod("_1");