Сборка от 17 марта 2017 г



Download 9,9 Mb.
bet145/349
Sana26.04.2022
Hajmi9,9 Mb.
#582433
TuriУчебник
1   ...   141   142   143   144   145   146   147   148   ...   349
Bog'liq
ilja kantor sovremennyj uchebnik-1chast PdfToWord

Всегда текущее значение


Значение переменной из внешней области берётся всегда текущее. Оно может быть уже не то, что было на момент создания функции. Например, в коде ниже функция sayHi берёт phrase из внешней области:


var phrase = 'Привет';


function sayHi(name) { alert(phrase + ', ' + name);


}
sayHi('Вася'); // Привет, Вася (*) phrase = 'Пока';
sayHi('Вася'); // Пока, Вася (**)

На момент первого запуска (*) , переменная phrase имела значение 'Привет' , а ко второму (**) изменила его на 'Пока' .


Это естественно, ведь для доступа к внешней переменной функция по ссылке [[Scope]] обращается во внешний объект переменных и берёт то значение, которое там есть на момент обращения.




Вложенные функции


Внутри функции можно объявлять не только локальные переменные, но и другие функции. К примеру, вложенная функция может помочь лучше организовать код:


function sayHiBye(firstName, lastName) {


alert( "Привет, " + getFullName() ); alert( "Пока, " + getFullName() );
function getFullName() {
return firstName + " " + lastName;
}

}


sayHiBye("Вася", "Пупкин"); // Привет, Вася Пупкин ; Пока, Вася Пупкин

Здесь, для удобства, создана вспомогательная функция getFullName() .


Вложенные функции получают [[Scope]] так же, как и глобальные. В нашем случае:


getFullName.[[Scope]] = объект переменных текущего запуска sayHiBye


Благодаря этому getFullName() получает снаружи firstName и lastName .


Заметим, что если переменная не найдена во внешнем объекте переменных, то она ищется в ещё более внешнем (через [[Scope]] внешней функции), то есть, такой пример тоже будет работать:


var phrase = 'Привет'; function say() {


function go() {
alert( phrase ); // найдёт переменную снаружи
}

go();
}


say();




Download 9,9 Mb.

Do'stlaringiz bilan baham:
1   ...   141   142   143   144   145   146   147   148   ...   349




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish