JavaScriptте объекттин контекстин кантип өзгөртүүгө болот?
sobes.tech AI
AIден жооп
JavaScriptте this контекстин өзгөртүүнүн бир нече негизги жолдору бар:
-
call(): Функцияны белгилүү контекст жана аргументтер менен жеке өткөрүп иштетет.// `call()` мисалы const obj = { мааниси: 42 }; function көрсөтМисал() { console.log(this.мааниси); } көрсөтМисал.call(obj); // 42 чыгарат -
apply(): Функцияны белгилүү контекст жана аргументтер менен массив же псевдо-массив түрүндө өткөрүп иштетет.// `apply()` мисалы const obj = { мааниси: 100 }; function кошуу(a, b) { console.log(this.мааниси + a + b); } кошуу.apply(obj, [5, 10]); // 115 чыгарат -
bind(): Жаңы функцияны кайтарат, анын контексти белгиленген объектке бекитилет. Orигиналдуу функция дароо чакырылбайт.// `bind()` мисалы const obj = { мааниси: 200 }; function куттуктоо() { console.log("Салам из " + this.мааниси); } const бекитилгенКуттуктоо = куттуктоо.bind(obj); бекитилгенКуттуктоо(); // "Салам из 200" чыгарат -
Сталк функциялар (
=>): Өзүнүнthisконтексти жок. Алар лексикалык чөйрөдөн, алардын аныкталган жеринен мурас алышат.// Сталк функциясы менен мисал const obj = { мааниси: "объект", көрсөтМисал: function() { const стрелкаФункция = () => { console.log("Стрелка функциясынан: " + this.мааниси); // this `obj`ке шилтеме кылат } стрелкаФункция(); } }; obj.көрсөтМисал(); // "Стрелка функциясынан: объект" чыгарат -
Объекттин методу катары чакыруу: Функция объекттин методу катары чакырылса (
obj.method()),thisконтексти объектке (obj) болот.// Мисал методу катары чакыруу const obj = { мааниси: "объекттин методу", көрсөт: function() { console.log(this.мааниси); } }; obj.көрсөт(); // "объекттин методу" чыгарат -
Конструктор аркылуу контекстти берүү (
new):newоператору колдонулганда, конструктордун ичиндеthisжаңы түзүлгөн объектке шилтеме кылат.// Конструктор мисалы function MyObject(мааниси) { this.мааниси = мааниси; // `this` жаңы объектке шилтеме кылат } const экземпляр = new MyObject("конструктор"); console.log(экземпляр.мааниси); // "конструктор" чыгарат
Бул ыкмалар this сөзүнүн кайсы объектке шилтеме кылып жатканын башкарууга мүмкүндүк берет, ал JavaScriptте объекттер жана методдор менен иштөөдө маанилүү.