Присвоить значение свойству метода JS?

Собственно вот есть объект
let obj = {
  trampapam:function(){
    tratata=false;
  }
};
obj.trampapam().tratata=true;
console.log(obj.trampapam().tratata) //FALSE

Почему не присваивает и как выполнить присваивание?
  • Вопрос задан
  • 264 просмотра
Пригласить эксперта
Ответы на вопрос 3
lazalu68
@lazalu68
Salmon
Давайте я просто расскажу что происходит у вас в коде, тогда вы поймёте в чем ошибка:

// объявление объекта
let obj = { 
  // объявление свойства trampapam и присваивание ему функции
  trampapam: function() { 
    // объявление переменной tratata в глобальном объекте, в window
    tratata = false; 
  }
};
// выполнение метода trampapam, в результате которого в window появляется свойство tratata
// после чего безуспешная попытка присваивания результату (undefined) свойства tratata
obj.trampapam().tratata = true;
Ответ написан
Комментировать
evgeniy8705
@evgeniy8705
Повелитель вселенной
const something = {
  method() {
    let variable = false;

    // Неявно возвращается undefined
    // return undefined; 
  }
};

something.method().variable = true; // undefined.variable = true
// error (Cannot set property "variable" of undefined)

console.log(something.method().variable); // Этот вывод вообще не выполнится
Ответ написан
Комментировать
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
'use strict';
let obj = {
  trampapam: {
    tratata: false
  }
};
obj.trampapam.tratata=true;
console.log(obj.trampapam.tratata) //true
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы