Я новичок в объектной концепции javascript. На самом деле его хромой вопрос, но я хочу четко понимать эту концепцию.
var objA = {
a : 10,
b : 20,
newobjB : {
c : 100,
funOfObjB: function(){
console.log(this.a)
}
}
}
Здесь я хочу получить значение родительской переменной объекта этой концепцией. Я попытался
связывания()
но он дает мне несколько разных данных в этой переменной.
Спасибо за помощь
Нет способа ссылаться на 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);
.I have tried bind()
- очевидно, вы этого не сделали, поскольку этого нет в опубликованном вами коде. Если у вас возникли проблемы с определенным фрагментом кода, имеет смысл опубликовать этот фрагмент кода, а не какой-либо другой фрагмент кодаthis
имеет контекстnewobjB
которого вообще нетa
свойства. Если вы хотите, чтобыnewobjB
наследовал свойстваobjA
вам нужно использовать прототипное наследование. Другие подходы - использованиеobjA.a
вместоthis.a