В этой статье мы рассмотрим статические члены в 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 г.