Показать сообщение отдельно
  #9 (permalink)  
Старый 02.07.2017, 11:58
Профессор
Отправить личное сообщение для Teamur Посмотреть профиль Найти все сообщения от Teamur
 
Регистрация: 08.06.2015
Сообщений: 206

Мне же просто нужно один раз сохранить в переменной свойство,
чтобы не получать его каждый раз заново.
Не понимаю почему зашла речь о синхронности и тп.

Это максимум, что я могу вам показать, чтобы поддержать тему:
Node.prototype.bind = function(varName, propName) {
  let elem = this;
  Object.defineProperty(window,varName,{
    get() {
      console.log('-> '+elem[propName]);
      varName = elem[propName];
    },
    set(newVal) {
      elem[propName] = newVal;
      console.log(elem[propName]+' -> '+newVal);
      varName = elem[propName]
    }
  });
  this.free = function() { // Тут что-то напутал (
   varName = null;
   console.log('var '+varName+' is FREE now!');
  }
}


<div id='Elem'>Lorem</div>

Юзаж:
let elem = document.getElementById('Elem');

elem.bind('txt','textContent');

console.log(txt);  // -> Lorem

if (elem.style.color == '#000') {
  txt = 'Ipsum'; // Lorem -> Ipsum
}
else {
  txt = 'Dolor'; // Ipsum -> Dolor
};

txt.free(); // var txt is FREE now!

console.log(txt) // null


Надеюсь на вашу помощь, спасибо!

Последний раз редактировалось Teamur, 02.07.2017 в 12:06.
Ответить с цитированием