ÐбÑекÑÑ Ð¾Ð±ÑÑно ÑоздаÑÑÑÑ, ÑÑÐ¾Ð±Ñ Ð¿ÑедÑÑавлÑÑÑ ÑÑÑноÑÑи ÑеалÑного миÑа, бÑÐ´Ñ Ñо полÑзоваÑели, Ð·Ð°ÐºÐ°Ð·Ñ Ð¸ Ñак далее:
// ÐбÑÐµÐºÑ Ð¿Ð¾Ð»ÑзоваÑелÑ
let user = {
name: "John",
age: 30
};
Ð Ñак же, как и в ÑеалÑном миÑе, полÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ ÑовеÑÑаÑÑ Ð´ÐµÐ¹ÑÑвиÑ: вÑбиÑаÑÑ ÑÑо-Ñо из коÑÐ·Ð¸Ð½Ñ Ð¿Ð¾ÐºÑпок, авÑоÑизовÑваÑÑÑÑ, вÑÑ Ð¾Ð´Ð¸ÑÑ Ð¸Ð· ÑиÑÑемÑ, оплаÑиваÑÑ Ð¸ Ñ.п.
Такие дейÑÑÐ²Ð¸Ñ Ð² JavaScript пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ ÑÑнкÑиÑми в ÑвойÑÑÐ²Ð°Ñ .
ÐÑимеÑÑ Ð¼ÐµÑодов
ÐÐ»Ñ Ð½Ð°Ñала давайÑе наÑÑим наÑего полÑзоваÑÐµÐ»Ñ user здоÑоваÑÑÑÑ:
let user = {
name: "John",
age: 30
};
user.sayHi = function() {
alert("ÐÑивеÑ!");
};
user.sayHi(); // ÐÑивеÑ!
ÐдеÑÑ Ð¼Ñ Ð¿ÑоÑÑо иÑполÑзовали Function Expression (ÑÑнкÑионалÑное вÑÑажение), ÑÑÐ¾Ð±Ñ ÑоздаÑÑ ÑÑнкÑÐ¸Ñ Ð¿ÑивеÑÑÑвиÑ, и пÑиÑвоили ÐµÑ ÑвойÑÑÐ²Ñ user.sayHi наÑего обÑекÑа.
ÐаÑем Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ вÑзваÑÑ ee как user.sayHi(). ТепеÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð³Ð¾Ð²Ð¾ÑиÑÑ!
ФÑнкÑиÑ, коÑоÑÐ°Ñ ÑвлÑеÑÑÑ ÑвойÑÑвом обÑекÑа, назÑваÑÑ Ð¼ÐµÑодом ÑÑого обÑекÑа.
ÐÑак, Ð¼Ñ Ð¿Ð¾Ð»ÑÑили меÑод sayHi обÑекÑа user.
ÐонеÑно, Ð¼Ñ Ð¼Ð¾Ð³Ð»Ð¸ Ð±Ñ Ð¸ÑполÑзоваÑÑ Ð·Ð°Ñанее обÑÑвленнÑÑ ÑÑнкÑÐ¸Ñ Ð² каÑеÑÑве меÑода, Ð²Ð¾Ñ Ñак:
let user = {
// ...
};
// ÑнаÑала, обÑÑвлÑем
function sayHi() {
alert("ÐÑивеÑ!");
}
// заÑем добавлÑем в каÑеÑÑве меÑода
user.sayHi = sayHi;
user.sayHi(); // ÐÑивеÑ!
Ðогда Ð¼Ñ Ð¿Ð¸Ñем Ð½Ð°Ñ ÐºÐ¾Ð´, иÑполÑзÑÑ Ð¾Ð±ÑекÑÑ Ð´Ð»Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑÑноÑÑей ÑеалÑного миÑа, â ÑÑо назÑваеÑÑÑ Ð¾Ð±ÑекÑно-оÑиенÑиÑованнÑм пÑогÑаммиÑованием или ÑокÑаÑÑнно: «ÐÐл.
ÐÐÐ ÑвлÑеÑÑÑ Ð±Ð¾Ð»ÑÑой пÑедмеÑной облаÑÑÑÑ Ð¸ инÑеÑеÑной наÑкой Ñамой по Ñебе. Ðак вÑбÑаÑÑ Ð¿ÑавилÑнÑе ÑÑÑноÑÑи? Ðак оÑганизоваÑÑ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑвие Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸? ÐÑо â Ñоздание аÑÑ Ð¸ÑекÑÑÑÑ, и на ÑÑÑ ÑÐµÐ¼Ñ ÐµÑÑÑ Ð¾ÑлиÑнÑе книги, Ñакие как «ÐÑиÑÐ¼Ñ Ð¾Ð±ÑекÑно-оÑиенÑиÑованного пÑоекÑиÑованиÑ. ÐаÑÑеÑÐ½Ñ Ð¿ÑоекÑиÑованиÑ» авÑоÑов ÐÑÐ¸Ñ Ðамма, РиÑаÑд Хелм, РалÑÑ ÐжонÑон, Ðжон ÐлиÑÑÐ¸Ð´ÐµÑ Ð¸Ð»Ð¸ «ÐбÑекÑно-оÑиенÑиÑованнÑй анализ и пÑоекÑиÑование Ñ Ð¿ÑимеÑами пÑиложений» ÐÑади ÐÑÑа, а Ñакже еÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво дÑÑÐ³Ð¸Ñ ÐºÐ½Ð¸Ð³.
СокÑаÑÑÐ½Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð¼ÐµÑода
СÑÑеÑÑвÑÐµÑ Ð±Ð¾Ð»ÐµÐµ коÑоÑкий ÑинÑакÑÐ¸Ñ Ð´Ð»Ñ Ð¼ÐµÑодов в лиÑеÑале обÑекÑа:
// ÑÑи обÑекÑÑ Ð´ÐµÐ»Ð°ÑÑ Ð¾Ð´Ð½Ð¾ и Ñо же
user = {
sayHi: function() {
alert("ÐÑивеÑ");
}
};
// ÑокÑаÑÑÐ½Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð²ÑглÑÐ´Ð¸Ñ Ð»ÑÑÑе, не Ñак ли?
user = {
sayHi() { // Ñо же Ñамое, ÑÑо и "sayHi: function(){...}"
alert("ÐÑивеÑ");
}
};
Ðак бÑло показано, Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ пÑопÑÑÑиÑÑ ÐºÐ»ÑÑевое Ñлово "function" и пÑоÑÑо напиÑаÑÑ sayHi().
ÐÑжно оÑмеÑиÑÑ, ÑÑо ÑÑи две запиÑи не полноÑÑÑÑ ÑквиваленÑнÑ. ÐÑÑÑ Ñонкие ÑазлиÑиÑ, ÑвÑзаннÑе Ñ Ð½Ð°Ñледованием обÑекÑов (ÑÑо бÑÐ´ÐµÑ ÑаÑÑмоÑÑено позже), но на данном ÑÑапе изÑÑÐµÐ½Ð¸Ñ ÑÑо неважно. ÐоÑÑи во вÑÐµÑ ÑлÑÑаÑÑ ÑокÑаÑÑннÑй ÑинÑакÑÐ¸Ñ Ð¿ÑедпоÑÑиÑелен.
ÐлÑÑевое Ñлово «this» в меÑодаÑ
Ðак пÑавило, меÑÐ¾Ð´Ñ Ð¾Ð±ÑекÑа обÑÑно ÑÑебÑеÑÑÑ Ð´Ð¾ÑÑÑп к инÑоÑмаÑии, Ñ ÑанÑÑейÑÑ Ð² обÑекÑе, Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñвоей ÑабоÑÑ.
ÐапÑимеÑ, ÐºÐ¾Ð´Ñ Ð²Ð½ÑÑÑи user.sayHi() Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, коÑоÑое Ñ
ÑаниÑÑÑ Ð² обÑекÑе user.
ÐÐ»Ñ Ð´Ð¾ÑÑÑпа к инÑоÑмаÑии внÑÑÑи обÑекÑа меÑод Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑ ÐºÐ»ÑÑевое Ñлово this.
ÐнаÑение this â ÑÑо обÑÐµÐºÑ Â«Ð¿ÐµÑед ÑоÑкой», коÑоÑÑй иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð²Ñзова меÑода.
ÐапÑимеÑ:
let user = {
name: "John",
age: 30,
sayHi() {
// "this" - ÑÑо "ÑекÑÑий обÑекÑ".
alert(this.name);
}
};
user.sayHi(); // John
ÐдеÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð° user.sayHi() знаÑением this бÑÐ´ÐµÑ ÑвлÑÑÑÑÑ user (ÑÑÑлка на обÑÐµÐºÑ user).
ТеÑ
ниÑеÑки Ñакже возможно полÑÑиÑÑ Ð´Ð¾ÑÑÑп к обÑекÑÑ Ð±ÐµÐ· клÑÑевого Ñлова this, обÑаÑивÑиÑÑ Ðº Ð½ÐµÐ¼Ñ ÑеÑез внеÑнÑÑ Ð¿ÐµÑеменнÑÑ (в коÑоÑой Ñ
ÑаниÑÑÑ ÑÑÑлка на ÑÑÐ¾Ñ Ð¾Ð±ÑекÑ):
let user = {
name: "John",
age: 30,
sayHi() {
alert(user.name); // "user" вмеÑÑо "this"
}
};
â¦Ðо Ñакой код ненадÑжен. ÐÑли Ð¼Ñ ÑеÑим ÑкопиÑоваÑÑ ÑÑÑÐ»ÐºÑ Ð½Ð° обÑÐµÐºÑ user в дÑÑгÑÑ Ð¿ÐµÑеменнÑÑ, напÑимеÑ, admin = user, и пеÑезапиÑем пеÑеменнÑÑ user Ñем-Ñо дÑÑгим, Ñогда бÑÐ´ÐµÑ Ð¾ÑÑÑеÑÑвлÑн доÑÑÑп к непÑавилÑÐ½Ð¾Ð¼Ñ Ð¾Ð±ÑекÑÑ Ð¿Ñи вÑзове меÑода из admin.
ÐÑо показано ниже:
let user = {
name: "John",
age: 30,
sayHi() {
alert( user.name ); // пÑиведÑÑ Ðº оÑибке
}
};
let admin = user;
user = null; // пеÑезапиÑем пеÑеменнÑÑ Ð´Ð»Ñ Ð½Ð°Ð³Ð»ÑдноÑÑи, ÑепеÑÑ Ð¾Ð½Ð° не Ñ
ÑÐ°Ð½Ð¸Ñ ÑÑÑÐ»ÐºÑ Ð½Ð° обÑекÑ.
admin.sayHi(); // TypeError: Cannot read property 'name' of null
ÐÑли Ð±Ñ Ð¼Ñ Ð¸ÑполÑзовали this.name вмеÑÑо user.name внÑÑÑи alert, Ñогда ÑÑÐ¾Ñ ÐºÐ¾Ð´ Ð±Ñ ÑÑабоÑал.
«this» не ÑвлÑеÑÑÑ ÑикÑиÑованнÑм
Ð JavaScript клÑÑевое Ñлово «this» ведÑÑ ÑÐµÐ±Ñ Ð¸Ð½Ð°Ñе, Ñем в болÑÑинÑÑве дÑÑÐ³Ð¸Ñ ÑзÑков пÑогÑаммиÑованиÑ. Ðго можно иÑполÑзоваÑÑ Ð² лÑбой ÑÑнкÑии, даже еÑли ÑÑо не меÑод обÑекÑа.
Ð ÑледÑÑÑем пÑимеÑе Ð½ÐµÑ ÑинÑакÑиÑеÑкой оÑибки:
function sayHi() {
alert( this.name );
}
ÐнаÑение this вÑÑиÑлÑеÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð°, в завиÑимоÑÑи Ð¾Ñ ÐºÐ¾Ð½ÑекÑÑа.
ÐапÑимеÑ, здеÑÑ Ð¾Ð´Ð½Ð° и Ñа же ÑÑнкÑÐ¸Ñ Ð½Ð°Ð·Ð½Ð°Ñена двÑм ÑазнÑм обÑекÑам и Ð¸Ð¼ÐµÐµÑ ÑазлиÑное знаÑение «this» в вÑÐ·Ð¾Ð²Ð°Ñ :
let user = { name: "John" };
let admin = { name: "Admin" };
function sayHi() {
alert( this.name );
}
// иÑполÑзÑем Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ ÑÑнкÑÐ¸Ñ Ð² двÑÑ
обÑекÑаÑ
user.f = sayHi;
admin.f = sayHi;
// ÑÑи вÑÐ·Ð¾Ð²Ñ Ð¸Ð¼ÐµÑÑ Ñазное знаÑение this
// "this" внÑÑÑи ÑÑнкÑии - ÑÑо обÑÐµÐºÑ "пеÑед ÑоÑкой"
user.f(); // John (this == user)
admin.f(); // Admin (this == admin)
admin['f'](); // Admin (Ð½ÐµÑ ÑазниÑÑ Ð¼ÐµÐ¶Ð´Ñ Ð¸ÑполÑзованием ÑоÑки или квадÑаÑнÑÑ
Ñкобок Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа к обÑекÑÑ)
ÐÑавило пÑоÑÑое: еÑли вÑзÑваеÑÑÑ obj.f(), Ñо во вÑÐµÐ¼Ñ Ð²Ñзова f, this â ÑÑо obj. Так ÑÑо, в пÑиведÑнном вÑÑе пÑимеÑе ÑÑо либо user, либо admin.
this == undefinedÐÑ Ð´Ð°Ð¶Ðµ можем вÑзваÑÑ ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð¾Ð±Ñе без обÑекÑа:
function sayHi() {
alert(this);
}
sayHi(); // undefined
Ð ÑÑÑогом Ñежиме ("use strict") в Ñаком коде знаÑением this бÑÐ´ÐµÑ ÑвлÑÑÑÑÑ undefined. ÐÑли Ð¼Ñ Ð¿Ð¾Ð¿ÑÑаемÑÑ Ð¿Ð¾Ð»ÑÑиÑÑ Ð´Ð¾ÑÑÑп к this.name â ÑÑо вÑÐ·Ð¾Ð²ÐµÑ Ð¾ÑибкÑ.
РнеÑÑÑогом Ñежиме знаÑением this в Ñаком ÑлÑÑае бÑÐ´ÐµÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑй обÑÐµÐºÑ (window в бÑаÑзеÑe, Ð¼Ñ Ð²ÐµÑнÑмÑÑ Ðº ÑÑÐ¾Ð¼Ñ Ð¿Ð¾Ð·Ð¶Ðµ в главе ÐлобалÑнÑй обÑекÑ). ÐÑо â иÑÑоÑиÑеÑки ÑложивÑееÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ this, коÑоÑое иÑпÑавлÑеÑÑÑ Ð¸ÑполÑзованием ÑÑÑогого Ñежима ("use strict").
ÐбÑÑно подобнÑй вÑзов ÑвлÑеÑÑÑ Ð¾Ñибкой пÑогÑаммиÑованиÑ. ÐÑли внÑÑÑи ÑÑнкÑии иÑполÑзÑеÑÑÑ this, Ñогда она ожидаеÑ, ÑÑо бÑÐ´ÐµÑ Ð²Ñзвана в конÑекÑÑе какого-либо обÑекÑа.
thisÐÑли Ð²Ñ Ð´Ð¾ ÑÑого изÑÑали дÑÑгие ÑзÑки пÑогÑаммиÑованиÑ, Ñо вÑ, веÑоÑÑно, пÑивÑкли к идее «ÑикÑиÑованногоthis» â когда меÑодÑ, опÑеделÑннÑе в обÑекÑе, вÑегда имеÑÑ this, ÑÑÑлаÑÑееÑÑ Ð½Ð° ÑÑÐ¾Ñ Ð¾Ð±ÑекÑ.
Ð JavaScript this ÑвлÑеÑÑÑ Â«ÑвободнÑм», его знаÑение вÑÑиÑлÑеÑÑÑ Ð² Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñзова меÑода и не завиÑÐ¸Ñ Ð¾Ñ Ñого, где ÑÑÐ¾Ñ Ð¼ÐµÑод бÑл обÑÑвлен, а ÑкоÑее Ð¾Ñ Ñого, какой обÑÐµÐºÑ Ð²ÑзÑÐ²Ð°ÐµÑ Ð¼ÐµÑод (какой обÑÐµÐºÑ ÑÑÐ¾Ð¸Ñ Â«Ð¿ÐµÑед ÑоÑкой»).
ÐÑа конÑепÑÐ¸Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ this в Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐµÑ ÐºÐ°Ðº Ñвои плÑÑÑ, Ñак и минÑÑÑ. С одной ÑÑоÑонÑ, ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð²ÑоÑно иÑполÑзована в каÑеÑÑве меÑода Ñ ÑазлиÑнÑÑ
обÑекÑов (ÑÑо повÑÑÐ°ÐµÑ Ð³Ð¸Ð±ÐºÐ¾ÑÑÑ). С дÑÑгой ÑÑоÑонÑ, болÑÑÐ°Ñ Ð³Ð¸Ð±ÐºÐ¾ÑÑÑ ÑвелиÑÐ¸Ð²Ð°ÐµÑ Ð²ÐµÑоÑÑноÑÑÑ Ð¾Ñибок.
ÐдеÑÑ Ð½Ð°Ñа позиÑÐ¸Ñ Ð·Ð°ÐºÐ»ÑÑаеÑÑÑ Ð½Ðµ в Ñом, ÑÑÐ¾Ð±Ñ ÑÑдиÑÑ, ÑвлÑеÑÑÑ Ð»Ð¸ ÑÑо аÑÑ Ð¸ÑекÑÑÑное ÑеÑение в ÑзÑке Ñ Ð¾ÑоÑим или Ð¿Ð»Ð¾Ñ Ð¸Ð¼. СкоÑо Ð¼Ñ Ð¿Ð¾Ð¹Ð¼ÐµÐ¼, как Ñ ÑÑим ÑабоÑаÑÑ, как полÑÑиÑÑ Ð²ÑÐ³Ð¾Ð´Ñ Ð¸ избежаÑÑ Ð¿Ñоблем.
У ÑÑÑелоÑнÑÑ ÑÑнкÑий Ð½ÐµÑ Â«this»
СÑÑелоÑнÑе ÑÑнкÑии оÑобеннÑе: Ñ Ð½Ð¸Ñ
Ð½ÐµÑ Ñвоего «ÑобÑÑвенного» this. ÐÑли Ð¼Ñ ÑÑÑлаемÑÑ Ð½Ð° this внÑÑÑи Ñакой ÑÑнкÑии, Ñо оно беÑÑÑÑÑ Ð¸Ð· внеÑней «ноÑмалÑной» ÑÑнкÑии.
ÐапÑимеÑ, здеÑÑ arrow() иÑполÑзÑÐµÑ Ð·Ð½Ð°Ñение this из внеÑнего меÑода user.sayHi():
let user = {
firstName: "Ilya",
sayHi() {
let arrow = () => alert(this.firstName);
arrow();
}
};
user.sayHi(); // Ilya
ÐÑо оÑобенноÑÑÑ ÑÑÑелоÑнÑÑ
ÑÑнкÑий. Ðна полезна, когда Ð¼Ñ Ð½Ð° Ñамом деле не Ñ
оÑим имеÑÑ Ð¾ÑделÑное this, а ÑкоÑее Ñ
оÑим взÑÑÑ ÐµÐ³Ð¾ из внеÑнего конÑекÑÑа. Ðозже в главе ÐовÑоÑÑем ÑÑÑелоÑнÑе ÑÑнкÑии Ð¼Ñ Ñвидим болÑÑе пÑимеÑов на ÑÑÑ ÑемÑ.
ÐÑого
- ФÑнкÑии, коÑоÑÑе Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² ÑвойÑÑÐ²Ð°Ñ Ð¾Ð±ÑекÑа, назÑваÑÑÑÑ Â«Ð¼ÐµÑодами».
- ÐеÑÐ¾Ð´Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑÑ Ð¾Ð±ÑекÑам «дейÑÑвоваÑÑ»:
object.doSomething(). - ÐеÑÐ¾Ð´Ñ Ð¼Ð¾Ð³ÑÑ ÑÑÑлаÑÑÑÑ Ð½Ð° обÑÐµÐºÑ ÑеÑез
this.
ÐнаÑение this опÑеделÑеÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð°.
- ÐÑи обÑÑвлении лÑбой ÑÑнкÑии в ней можно иÑполÑзоваÑÑ
this, но ÑÑоÑthisне Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð´Ð¾ ÑÐµÑ Ð¿Ð¾Ñ, пока ÑÑнкÑÐ¸Ñ Ð½Ðµ бÑÐ´ÐµÑ Ð²Ñзвана. - ФÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑкопиÑована Ð¼ÐµÐ¶Ð´Ñ Ð¾Ð±ÑекÑами (из одного обÑекÑа в дÑÑгой).
- Ðогда ÑÑнкÑÐ¸Ñ Ð²ÑзÑваеÑÑÑ ÑинÑакÑиÑом «меÑода» â
object.method(), знаÑениемthisво вÑÐµÐ¼Ñ Ð²Ñзова ÑвлÑеÑÑÑobject.
Также еÑÑ Ñаз замеÑим, ÑÑо ÑÑÑелоÑнÑе ÑÑнкÑии ÑвлÑÑÑÑÑ Ð¾ÑобеннÑми â Ñ Ð½Ð¸Ñ
Ð½ÐµÑ this. Ðогда внÑÑÑи ÑÑÑелоÑной ÑÑнкÑии обÑаÑаÑÑÑÑ Ðº this, Ñо его знаÑение беÑÑÑÑÑ Ð¸Ð·Ð²Ð½Ðµ.
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)