Дефиниране на обекти

В JavaScript обектите са всичко – е, почти всичко :). Ако разберете обектите това означава, че сте разбрали JavaScript.

  • Булевите стойности (Booleans) могат да бъдат обекти (или примитивни данни, третирани като обекти)
  • Числата могат да бъдат обекти (или примитивни данни, третирани като обекти)
  • Стринговете могат да бъдат обекти (или примитивни данни, третирани като обекти)
  • Датите са винаги обекти
  • Maths винаги са обекти
  • Регулярните изрази винаги са обекти
  • Масивите винаги са обекти
  • Функциите винаги са обекти
  • Обектите са винаги обекти(това дали има някакъв смисъл!? – продължавай да четеш 🙂 )

Примитивните стойности и типове

В JavaScript всички стойности, с изключение на примитивните са обекти. Примитивните стойности в JavaScript са точно 5 типа:

  • стрингове („John Doe“)
  • числа (3.14)
  • булеви стойности (true, false)
  • null
  • undefined

Този тип стойности са „непроменими“ (immutable) – веднъж като са зададени няма начин да се променят.

Обектите са променливи, съдържащи променливи

JavaScript променливите могат да съдържат само по една стойност:

Опитайте сами »

Обектите също са променливи. Но те могат да съдържат много стойности. Тези стойностите се дефинират във вид на двойки – име:стойност.

Опитайте сами »

Бележка: всеки един обект при JavaScript е „колекция“ от именувани променливи към които може да има някакви присвоени стойности.

Свойства на обектите

Наименуваните стойности в JavaScript обектите се наричат ​​свойства на обекта.

Свойство Стойност
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + “ “ + this.lastName;}

Обекти написани като двойки име със зададена стойността са подобни на:

Методи на обектите

Методите са действия, които могат да се извършват от обекти. Свойствата на обектите могат да бъдат както примитивни, други обекти и функции. Един метод на даден обект е свойство на обект, съдържащо дефиниция на функция.

Свойство Стойност
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + “ “ + this.lastName;}

Бележка: JavaScript обектите са контейнери за именувани стойности, наречени свойства и методи. Ще научите повече за методите в следващите глави.

Създаване на JavaScript обект

С JavaScript можем да създаваме свои собствени обекти. Има няколко различни начини за създаване на нови обекти: Дефиниране и създаване на един обект, с помощта на object literal. Дефиниране и създаване на един обект с ключовата дума new. Дефиниране на обект-конструктор, като след това създаваме обект от зададения тип. Бележка: в ECMAScript 5, един обект може да се създаде и с функцията Object.create().

Използване на object literal

Това е най-лесният начин за създаване на JavaScript обект. Използването на object literal, едновременно дефинира и създава обект(в едно изявление). Един такъв обект е списък от двойки име:стойност (като age:50), който е обграден с фигурни скоби { }. Следващият пример създава нов JavaScript обект с четири свойства:

Опитайте сами »

Празните места и новите редове не са от значение. Една дефиниция на обект може да се раздели на няколко реда:

Опитайте сами »

Създаване на обект с помощта на ключовата дума new

Следващият пример създава нов обект с четири свойства (подобно на предходния).

Опитайте сами »

Бележка: Двата примера по-горе правят точно едно също нещо – създават точно един и същ обект. Не е необходимо да се използва функцията new Object(). За простота, разпознаваемост и бързина на изпълнението на кода, използвайте първият метод.

JavaScript обектите могат да се променят

Те са адресирани чрез референция, а не по отношение на стойността. Ако y е обект, следното изявление няма да създаде копие на y:

Обектът х не е копие на y. Той е y. И двете x и y всъщност сочат към един и същ обект. Всякакви промени направени в y същевременно ще променят и х, тъй като и двете променливи принадлежат на един и същ обект.

Опитайте сами »

Вижте още