В этой статье мы рассмотрим статические члены в JavaScript, как объявить статические переменные и прототип в JavaScript от Sagar Jaybhay.

Статические члены в JavaScript

Статические свойства и методы — это те, которые не изменяются при переходе от одного экземпляра к другому.

Также, если мы объявили статическую функцию, то эти функции можно использовать без создания объекта класса.

В javascript нет специального синтаксиса для обозначения статического члена, но мы можем использовать имя функции конструктора для объявления статических полей или статических методов в Javascript.

Статическая переменная не создается каждый раз при создании объекта.

function Shape(){
//here count is variable and it is static declaration contains constructor function name
Shape.Count=++Shape.Count||1;
// this is static function
Shape.GetTotalCount=function(){
return Shape.Count;
}
// below is the instance variable
this.val=0;
}
var shape1=new Shape();
var shape2=new Shape();
var shape3=new Shape();
alert(Shape.GetTotalCount());

Прототип в Javascript

Все объекты javascript наследуют свойства и методы от прототипа.

Javascript — это язык, основанный на прототипах, когда мы создаем функцию с помощью JavaScript, движок добавляет свойство прототипа внутри функции, а прототип в основном представляет собой объект, который также называется объектом-прототипом.

Прототип — это особый тип перечисляемого объекта, к которому могут быть присоединены дополнительные свойства, и он будет общим для всех экземпляров этой функции-конструктора.

function Employee(name)
{
this.FullName=name;
}
var emp=new Employee("SAGAR JAYBHAY");
emp.greeting=function(){
return "Hello, "+this.FullName;
}
var emp2=new Employee("XYZ");
emp2.

В приведенном выше коде emp2 — это объект и функция приветствия, которую мы создали для объекта emp. В javascript динамический язык, поэтому мы можем создать функцию, но она недоступна для остальной части объекта. Чтобы преодолеть такую ​​ситуацию, мы можем использовать прототип.

function Employee(name)
{
this.FullName=name;
}
var emp=new Employee("SAGAR JAYBHAY");
// emp.greeting=function(){
//     return "Hello, "+this.FullName;
// }
Employee.prototype.greeting=function(){
return "Hello, "+this.FullName;
}
var emp2=new Employee("XYZ");
emp2.greeting();

в приведенном выше коде мы создали функцию приветствия, используя прототип, и таким образом она доступна для всех объектов.

Функция прототипа позволяет переопределить требуемую функцию.

Файлы GitHub: — https://github.com/Sagar-Jaybhay/JavaScriptInBrowser

Первоначально опубликовано на https://sagarjaybhay.net 18 февраля 2020 г.