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

119
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
Закрыть меню при клике на страницу

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

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

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

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

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

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

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

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

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

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

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

152