Свяжите это родительского объекта с этим дочернего объекта в JavaScript

0

Я новичок в объектной концепции javascript. На самом деле его хромой вопрос, но я хочу четко понимать эту концепцию.

var objA = {
 a : 10,
 b : 20,
 newobjB : {
  c : 100,
  funOfObjB: function(){
   console.log(this.a)
  }
 }
}

Здесь я хочу получить значение родительской переменной объекта этой концепцией. Я попытался

связывания()

но он дает мне несколько разных данных в этой переменной.

Спасибо за помощь

  • 0
    .I have tried bind() - очевидно, вы этого не сделали, поскольку этого нет в опубликованном вами коде. Если у вас возникли проблемы с определенным фрагментом кода, имеет смысл опубликовать этот фрагмент кода, а не какой-либо другой фрагмент кода
  • 1
    В этом случае this имеет контекст newobjB которого вообще нет a свойства. Если вы хотите, чтобы newobjB наследовал свойства objA вам нужно использовать прототипное наследование. Другие подходы - использование objA.a вместо this.a
Показать ещё 1 комментарий
Теги:

1 ответ

0
Лучший ответ

Нет способа ссылаться на objA через newobjB как это.

objA просто ссылается на объект в виде свойства, называемого newobjB. objA.newobjB быть несколько ссылок на objA.newobjB - это не отношение 1 к 1. Вам нужно будет предоставить objA вашему объекту в newobjB чтобы ссылаться на него 1 например:

var objA = {
    a : 10,
    b : 20,
};

objA.newobjB = {
    objA: objA,
    c : 100,
    funOfObjB: function(){
        console.log(this.objA.a)
    }
};

1 Конечно, вы можете опустить прикрепление objA как свойство newobjB здесь, но я демонстрирую прецедент, где вам нужна ссылка обратно через this.

Если вы хотите, чтобы this objA на objA в funOfObjB вы можете использовать call или apply:

objA.newobjB.funOfObjB.call(objA);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню