Родительский объект при использовании, this в методе объекта

211
10 августа 2018, 13:20

Доброго времени суток.

A={
  b:1,
  c:{
    z:0,
    f:function(){return this;} 
  }
}

При вызове A.c.f() ссылается на c, как можно сделать, чтобы A.c.f() ссылался на объект A ?

Answer 1

function createA() { 
  var A = { 
    b: 1, 
    c: { 
      A: null, 
      z: 0, 
      f: function() { 
        return this.A; 
      } 
    } 
  }; 
  A.c.A = A; 
  return A; 
} 
 
var A = createA(); 
console.log(A.c.f());

var A = { 
  b: 1, 
  c: { 
    A: null, 
    z: 0, 
    f: function() { 
      return A; 
    } 
  } 
}; 
 
console.log(A.c.f());

Answer 2

Это?

let A={ 
  b:1, 
  c:{ 
    z:0, 
    f:function(){return this;}  
  } 
}; 
 
console.info(A.c.f.call(A));

READ ALSO
Закрыть меню при клике на страницу

Закрыть меню при клике на страницу

Возникает конфликт, при клике на саму кнопку меню - меню открывается, но тк я кликнул в области страницы, то оно сразу же закрывается

246
Как сделать раскрывающейся список?

Как сделать раскрывающейся список?

Как сделать раскрывающейся список, те

231
Vue.js Как передать данные из компонента?

Vue.js Как передать данные из компонента?

Имеется одностраничник с мини-блогом (посты генерируются динамически), хочу сделать редактирование постов через модальное окноПередаю в компонент...

216
Сделать стрелку слайдера неактивной - jQuery

Сделать стрелку слайдера неактивной - jQuery

У меня на сайте используется owl-carousel 2Есть слайдер с 3 слайдами и 2 стрелки для переключения, без autoplay и loop

240