Введення в статичний метод JavaScript

Статичні методи JavaScript зазвичай використовуються для створення корисних функцій. Вони введені в ES6 для специфічного для класу методу об'єктно-орієнтованого програмування в JavaScript.

Для оголошення статичного методу ми можемо просто використовувати статичне ключове слово з підписом методу. Статичний метод не викликається в екземплярі класу, який вони роблять для виклику безпосередньо на клас.

Тож можна сказати, що JavaScript надає нам статичний метод, який належить до класу, але не до екземпляра класу. Таким чином, як і java, нам не потрібен екземпляр класу для виклику статичного методу в JavaScript. Отже, статичний метод у JavaScript належить до самого класу.

Синтаксис:

static methodName()()

У JavaScript ми також використовуємо статичне ключове слово для визначення будь-якого методу як статичного методу. Нам просто потрібно використовувати статичне ключове слово разом із назвою методу. Назви методів можуть бути будь-якими. Є багато моментів, пов’язаних із цим статичним ключовим словом, давайте перевіримо їх по черзі:

  • Клас може містити будь-яку кількість статичних методів. Іншими словами, клас може мати більше одного статичного методу.
  • Статичний метод може мати будь-яку назву, як і будь-який інший метод або функцію.
  • Для виклику статичного методу з іншого статичного методу ми можемо використовувати це ключове слово.
  • Статичний метод може бути використаний для створення корисних функцій.
  • Якщо ми хочемо викликати статичний метод з нестатичного методу в таких випадках, ми не можемо використовувати це ключове слово. Нам потрібно викликати статичний метод за назвою класу або як властивість конструктора.
  • Ми можемо оголосити більше одного статичного методу з тим же ім'ям, але якщо ми це зробимо, JavaScript завжди викликає останній.

Простий приклад для демонстрації синтаксису статичного методу.

Код:


class Syntax
(
static displayMessage()
(
return "static method called"
)
)
document.writeln(Syntax.displayMessage());

У наведеному вище прикладі ми викликаємо статичний метод з назвою класу, не створюючи екземпляр класу. Використання назви класу лише як екземпляр.

Як статичні методи працюють у JavaScript?

  • Статичний метод - це методи, які вимагають, щоб об'єкт класу був створений раніше, коли він насправді викликав. Для їх виклику нам потрібно створити об’єкт класу, в якому він визначений. Статичний метод отримує виклик двома способами: один, використовуючи це ключове слово, інший від конструктора.
  • Статичні методи не можуть безпосередньо викликати нестатичний метод. Статичні методи використовують змінний стан екземпляра, щоб впливати на їх поведінку. Статичний метод також не може бачити стан змінної екземпляра, тому якщо ми спробуємо викликати нестатичний метод від компілятора статичного методу, буде скаржитися.
  • Також статичний метод не може використовувати нестатичну змінну екземпляра. Статичний метод не може посилатися на будь-які змінні екземпляри класу. Статичний метод не знає, яке значення змінної екземпляра використовувати.
  • Тоді як у випадку нестатичних методів у них є будь-яке статичне ключове слово разом із назвою методу, і якщо ми хочемо працювати з нестатичними методами, тоді нам потрібно створити об'єкт цього класу, оскільки він належить тільки до класу, в якому це оголошено. Нестатичні методи можуть легко отримати доступ до будь-якої статичної та будь-якої статичної змінної без екземпляра класу.

Для того, щоб викликати статичний метод з іншого статичного методу, ми можемо використовувати ключове слово "це".

Код:

class StaticMethodCallDemo (
static staticMethodOne() (
return 'Static method one is called from ';
)
static sttaicMethodTwo() (
return this.staticMethod() + ' static method two';
)
)
StaticMethodCallDemo.staticMethodOne();
StaticMethodCallDemo.sttaicMethodTwo();

Але що робити, якщо ми хочемо викликати статичний метод з нестатичного методу. Для цього ми можемо піти з будь-яким із двох підходів

1) classname.static_method_name (); : За допомогою назви класу
2) this.constructor.static_method_name (); : Або за допомогою властивості конструктора.

Код:

class StaticMethodCallDemo2 (
constructor() (
console.log(StaticMethodCallDemo2.staticMethodOne());
// 'static method called using class name.'
console.log(this.constructor.staticMethodOne());
// 'static methed called using constructor property.'
)
static staticMethodOne() (
return 'static method has been called.';
)
)

У JavaScript також передбачено введення класів у ES6, тому тепер ми можемо використовувати статичний метод, конструктори, супервиклики до батьків та успадкування, які полегшать інтероперабельність значно більші для розробника. Таким чином, ми можемо мати підклас до батьківського класу та будь-який метод, який ми оголосимо в батьківському класі, який буде доступний і в підкласі. Доступ до геттерів та сеттерів також представлений у ES5, і це може бути використано зі статичним ключовим словом. Нижче наведено приклад, який показує, як використовувати це зі статичним ключовим словом.

Код:

class Demo(
constructor(name)(
this.name = name
)
static get Leader()(
return new Demo(abc)
)
)

Приклади статичного методу JavaScript

Ось деякі приклади статичного методу javascript, наведені нижче:

Приклад №1

Показати статичний метод з однойменною назвою.

Код:



class SameNameDemo
(
static displayMsg()
(
return "static method with same name one"
)
static displayMsg()
(
return "static method with same name two"
)
)
document.writeln(SameNameDemo.displayMsg());

Вихід:

Приклад №2

Приклад для виклику декількох статичних методів.

Код:



class NoSameName
(
static displayMsg1()
(
return "static method one is called"
)
static displayMsg2()
(
return "static method two is called"
)
)
document.writeln(NoSameName.displayMsg1()+"
");
document.writeln(NoSameName.displayMsg2());

Вихід:

Приклад №3

Щоб відобразити повідомлення.

Код:



class Demo
(
static displayMsg()
(
return "static method is called"
)
)
document.writeln(Demo.displayMsg());

Вихід:

Приклад №4

Виклик статичного методу з нестатичного методу.

Код:



class Demo (
static displayMsg() (
return "calling static method from non static method"
)
showMsg() (
document.writeln(Demo.displayMsg()+"
");
)
)
var demo =new Demo();
demo.showMsg();

Вихід:

Приклад №5

Виклик статичного методу від конструктора.

Код:



class Demo (
constructor() (
document.writeln (Demo.displayMag()+"
");
document.writeln (this.constructor.displayMag());
)
static displayMag() (
return "calling static method from constructor."
)
)
var demo = new Demo();

Вихід:

Висновок

Отже, в основному статичний метод не вимагає, щоб екземпляр отримував доступ до них, ми можемо безпосередньо отримувати доступ до них за назвою класу, до якого вони належать. Наприклад ClassName.Static-method-name-to-be = call ();

Рекомендовані статті

Це посібник щодо статичного методу JavaScript. Тут ми обговорюємо синтаксис, роботу та приклади статичного методу javascript. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Події JavaScript
  2. Помилки в JavaScript
  3. JavaScript проти Ruby
  4. Рекурсивна функція в JavaScript