⊗jsOpAdCL 41 of 60 menu

Контексти гумшуда дар ООП дар JavaScript

Ҳангоми кор бо классҳо, контекст гум карда метавонад ва this ба объекти класс ишора намекунад, балки ба чизе дигар. Биёед бубинем, ки ин чӣ гуна рӯй медиҳад ва бо он чӣ кардан лозим аст.

Бигзор мо классе User дошта бошем, ки номи корбар ва массив аз шаҳрҳоеро, ки ин корбар дар онҳо будааст, дар бар мегирад:

class User { constructor(name, cities) { this.name = name; this.cities = cities; } }

Бигзор усуле бошад, ки шаҳрҳоро баро мекунад:

class User { constructor(name, cities) { this.name = name; this.cities = cities; } showCities() { this.cities.forEach(function(city) { console.log(city); }); } }

Бигзор дар ин усул мо қарор додем, ки истифода кунем як усули ёридиҳандаи класстро. Дар ин ҳолат контекст гум мешавад:

class User { constructor(name, cities) { this.name = name; this.cities = cities; } showCities() { this.cities.forEach(function(city) { console.log(this.#cape(city)); // контекст гум шуд }); } #cape(str) { return str[0].toUpperCase() + str.slice(1); } }

Масъаларо, барои намуна, бо ворид кардани функсияи тиршакл ислоҳ кардан мумкин аст:

class User { constructor(name, cities) { this.name = name; this.cities = cities; } showCities() { this.cities.forEach(city => { console.log(this.#cape(city)); }); } #cape(str) { return str[0].toUpperCase() + str.slice(1); } }

Хатоеро, ки дар коди зерин сурат гирифтааст, ислоҳ кунед:

class Employee { constructor(name, salary, coeffs) { this.name = name; this.salary = salary; this.coeffs = coeffs; } getTotal() { return this.coeffs.reduce(function(res, coeff) { return res + this.salary * coeff; }, 0); } } let employee = new Employee('john', 1000, [1.1, 1.2, 1.3]); let total = employee.getTotal(); console.log(total);
Тоҷикӣ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан