Области на видимост в JavaScript

Фразата „обектно-ориентиран скрипт“ страда от явна неточност, защото JavaScript е изцяло обектно-ориентиран език и да се използва по друг начин е просто невъзможно. За да пишем оптимален код на JavaScript, трябва да разберем как работят обектите в този скриптов език, с какво тези обекти се отличават от обектите в другите езици за програмиране, и как да се възползваме от тези различия.

Обектите се явяват основни елементи в JavaScript. Всичко в JavaScript е обект. Но за да има репутация на надежден обектно-ориентиран език, той включва широк арсенал от свойства, които го правят оригинален, както по възможности, така и по стил.

Някои от най-важните аспекти на езика са препратки, области на видимост, контекст, поведения на обекти, способи за създаване на нови обекти и методи със специални пълномощни.

В самата си основа обектите съществуват като семейства от свойства и напомнят хеш-таблиците в другите езици.

Области на видимост

В JavaScript областите на видимост имат особеност. Областта на видимост се съхранява вътре във функцията, а не във блокове (създадени с операторите while, for или if).

Променливи с глобална област на видимост се проявяват като свойства на обекта window.

Интересен е случаят когато имаме променлива, която не е дефинирана т.е. не е използвана декларация var и фактически никъде не е обявена областта на видимост. Когато една променлива не е обявена , но се използва, тя се приема като глобална променлива дори ако се използва само в областта на видимост на дадена функция.

Например:

function addsum() {
sum=100;

}
addsum();
alert (window.sum==100); //sum има глобална област на видимост;

Въпреки че, областите на видимост в javascript не са толкова строги както в обектно – ориентираните езици с блокова структура, това е достатъчно мощен език за интерпретиране.

Advertisements
This entry was posted in JavaScript. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s