Конструктори при обектите

Примерите от предишните глави са ограничени за много от потенциалните ситуации, на които можем да попаднем докато пишем програмите си на JavaScript. Те създават само единични обекти. Понякога обичаме е по-добре да имаме „тип обект“, който може да се използва за създаване на много обекти от един тип. Стандартният начин за създаване на „тип обект“ е да се използва функция конструктор на обект. Нека да разгледаме точно това в този урок.

Използване на конструктор при JavaScript обектите

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

Горната функция е конструктор на обекта Person. Счита се за добра практика да се именуват функциите на конструктора с главна първа буква. След като имате конструктор на обекта, можете да създадете нови обекти от същия тип:

Ключовата дума this

В JavaScript (и не само) ключовата дума this се отнася до даден обект, който „притежава“ текущия код. Стойността на this, когато се използва във обект, е самият обект. Бележка: имайте предвид, че this не е променлива. Това е просто ключова дума. Не можете да промените стойността й.

Вградени конструктори

При JavaScript разполагаме с много вградени конструктори, с помощта на които можем да праим множество инстанции от даден тип обект – например за съставяне на календарни дати.

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

Забележете, че обектът Math() не е в списъка. Това е така понеже той е глобален обект. Ключова дума new не може да бъде използвана в Math.

Както можете да видите, JavaScript има обектни версии на примитивните типове данни String, Number и Boolean.
Няма причина да създавате сложни обекти. Примитивните стойности се изпълняват много по-бързо.
И няма причина да използвате new Array(). Вместо това използвайте array literals ето така [].
Също така няма причина да използвате new RegExp(). Вместо това използвайте pattern literals ето така /()/.
Също така няма причина да използвате new Function(). Вместо това използвайте изразите за функция: function () {}.
И още, няма причина да използвате синтаксиса за създаване на нов обект new Object().. Вместо това използвайте {}.

Вижте още