Конструктор у JavaScript - його типи та методи імпортерів

Зміст:

Anonim

Вступ до конструктора в JavaScript

Метод конструктора в JavaScript - це спеціальний метод, який використовується для створення та ініціалізації об'єктів у класі. Це робить конструктор у кожній мові програмування. Що відрізняє конструктор JavaScript від інших, це свобода з точки зору синтаксису. Щоб зрозуміти це краще, просто відкрийте інструменти для розробників браузера (Ctrl / Cmd + Shift + C) та перейдіть на вкладку Консоль у вікні інструментів для розробників.

Виглядає так у Chrome

Це майданчик для більшості концепцій, що стосуються JavaScript. Ми будемо використовувати цю майданчик у цій статті.

Типи конструкторів у JavaScript

У JavaScript існує два типи конструкторів

1. Вбудовані конструктори

Це легко доступні конструктори, які поставляються в комплекті із середовищем виконання. Користувачеві потрібно просто викликати їх і порушити, зроблена робота. Прикладами вбудованих конструкторів є масив, дата та об’єкт.

2. Конструктори, визначені користувачем

Це конструктори, оголошені та визначені програмістом для використання у всьому додатку. Програміст також може визначати властивості та методи власних власних типів. Вони також відомі як власні конструктори. Згідно з умовами, всі конструктори JavaScript мають речення в шасі. Це означає, щоб особа, яка їх використовує, повинна використовувати цю функцію за допомогою нового ключового слова.

Як конструктори працюють у JavaScript?

Перш ніж ми подивимось на синтаксис конструкторів JavaScript, нам потрібно зрозуміти дуже базове поняття JavaScript -

  • Клас Object підсумовує у контексті цієї статті, кожен об’єкт JavaScript створюється конструктором Object. Якщо значення, що надається під час створення об'єкта, є нульовим або невизначеним, конструктор Object створить порожній об'єкт. В іншому випадку він створить об’єкт типу, визначеного під час створення об'єкта.
  • Щоразу, коли оголошується новий об'єкт типу класу, нове ключове слово повертає посилання на новостворений об’єкт. Доступ до цього об'єкта використовується за допомогою цього ключового слова всередині конструктора для ініціалізації властивостей об'єкта.
  • Хоча технічно JavaScript не має класів, але має конструктори та прототипи, що забезпечують подібну функціональність. У ECMAScript 2015 поняття класів було введено в JavaScript. Це було просто синтаксичним доповненням до існуючого успадкування, заснованого на прототипі, і не додало мови жодної нової функціональності.

Синтаксис та приклади конструктора в JavaScript

1) Метод конструктора

Нижче наведено метод конструктора. Цей метод використовується всередині прототипу класу.

Синтаксис

constructor((arguments))( … )

Код

class Employee(
constructor(id, name)(
this.id = id;
this.name = name;
))
var emp1 = new Employee(123, "John");
console.log(emp1.name);

Вихід:

2) Конструктор об'єктів (вбудовані конструктори)

Конструктор об'єкта викликається безпосередньо, коли створюється об'єкт класу Object. Це створює об’єкт класу Object, якщо нульові або невизначені параметри передаються як аргументи. В іншому випадку створюється об’єкт типу заданих параметрів.

Синтаксис

new Object(( value ))

Або

new Array(( value ))

Або

new Date(( value ))

Або

new String(( value ))

Або

new Number(( value ))

Або

new Boolean(( value ))

Або

new Function(( value ))

Або

new Error(( value ))

Або

new RegExp(( value ))

і так далі…

Код:

var name = new Object("John");
var age = new Object(28);
console.log("Name : "+name+" & Age : "+age);

Вихід:

3) Конструктори масивів і дат

Аналогічно конструктори Array і Date також можуть використовуватися для створення об'єктів відповідних типів.

Код:

var alphabets = new Array('Apple', 'Ball', 'Cat');
console.log(alphabets);

Вихід:

Код:

var now = new Date();
console.log(now);

Вихід:

Код:

var err = new Error("A user-defined error has occurred.");
console.log(err);

Вихід:

4) Спеціальні конструктори

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

Синтаксис

function FunctionName((arguments))( … )

Код

function Book(name, author, year) (
this.name = name;
this.author = author;
this.year = year;
)
function displayBook(book)(
console.log('\'' + book.name + '\' authored by ' + book.author + ' in the year ' + book.year + '.');
)
var book1 = new Book('Java - The Complete Reference', 'Herbert Schildt', 2006);
var book2 = new Book('Let Us C', 'Yashavant Kanetkar', 2002);
var book3 = new Book('Data Structures', 'Seymour Lipschutz', 2005);
displayBook(book1);
displayBook(book2);
displayBook(book3);

Вихід:

Важливість нового ключового слова

Тепер вам може бути цікаво, що робити, якщо я не використовую нове ключове слово? Чи можу я пропустити нове ключове слово? Ну, мій друже, ні. Використання нового ключового слова дуже важливо.

  • Конструктори JavaScript - це регулярні функції. До них додається нове ключове слово, яке повідомляє механізму JavaScript, що новий об'єкт повинен бути побудований із заданими властивостями. Без нового ключового слова ви просто створюватимете все більш глобальні об’єкти.
  • Нове ключове слово повертає посилання на щойно створений об’єкт. Потім ми зберігаємо цю посилання у змінній. Без нового ключового слова об’єкт створюється, але посилання на об'єкт не повертається. Об'єкт набуває глобального масштабу. Єдине посилання на цей об’єкт - через об’єкт вікна.
  • Плутати? Розберемося краще на прикладах. Розглянемо вище наведений приклад. Ми видалили нове ключове слово з об’єктів оголошень. Результатом став виняток із невизначених змінних. Це тому, що без нового ключового слова посилання на новостворені об’єкти не поверталися і тому не зберігалися в наших змінних book1, book2 та book3. Коли ми намагалися отримати доступ до цих змінних у способі відображення книги, виняток є кинутим.

Код:

function Book(name, author, year) (
this.name = name;
this.author = author;
this.year = year;
)
function displayBook(book)(
console.log('\'' + book.name + '\' authored by ' + book.author + ' in the year ' + book.year + '.');
)
var book1 = Book('Java - The Complete Reference', 'Herbert Schildt', 2006);
var book2 = Book('Let Us C', 'Yashavant Kanetkar', 2002);
var book3 = Book('Data Structures', 'Seymour Lipschutz', 2005);
displayBook(book1);
displayBook(book2);
displayBook(book3);

Вихід:

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

Код:

function Book(name, author, year) (
this.name = name;
this.author = author;
this.year = year;
)
function displayBook(book)(
console.log('\'' + window.name + '\' authored by ' + window.author +' in the year ' + window.year + '.');
)
var book1 = Book('Java - The Complete Reference', 'Herbert Schildt', 2006);
var book2 = Book('Let Us C', 'Yashavant Kanetkar', 2002);
var book3 = Book('Data Structures', 'Seymour Lipschutz', 2005);
displayBook(book1);
displayBook(book2);
displayBook(book3);

Вихід:

Тепер, як вправу, зробіть невеликий мозковий штурм, щоб з'ясувати, чому ми отримуємо цей результат!

Конструктори безпечного застосування

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

Код

function SampleFn(argument) (
// if "this" is not an instance of the constructor
// it means it was called without new
if (!(this instanceof SampleFn)) (
// call the constructor again with new
return new SampleFn(argument);
)
// The code to construct properties and methods
)

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

Висновок

У цій статті було детально продемонстровано конструктори JavaScript. Це також допомагає зрозуміти роботу JavaScript. Тут важливо пам'ятати, що хоча технічно немає класів у JavaScript, методи та прототипи надають подібну функціональність у розпорядженні розробника. І так, нове ключове слово важливе.

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

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

  1. Що Javascript може зробити?
  2. Що таке JavaScript?
  3. Як встановити JavaScript
  4. Деструктор на Java
  5. Функції Regex в Python (приклад)
  6. Приклади цього ключового слова
  7. Робота та правила instanceOf в Java з прикладом