0
Я пытаюсь получить доступ к переменной в A из B (в моем примере ниже). Я не расширил B от A, потому что A - это просто контейнер.Как получить доступ к родительской переменной из дочернего элемента
function A() {
var Parent = this;
this.container = [];
}
A.prototype.add = function(Item) {
Parent.container.push(Item);
}
function B() {
}
B.prototype.exec = function() {
console.log(Parent.container[0]) //Uncaught ReferenceError: Parent is not defined
}
var Manager = new A();
var Item = new B();
Manager.add(B);
Item.exec();
Как получить доступ к Parent
от Item
?
Вы не можете. В вашем примере «Item» - это просто элемент в '' контейнере '' '' менеджера'. Он не имеет ни малейшего представления о том, где он находится, или о том, к чему он имеет доступ в своей родительской области. Что-то, что вы могли бы сделать, это поместить новое свойство в 'B', например' parent'. Затем в вашем '' '' методе 'add' вы устанавливаете' Item.parent = this; '. Затем из ваших методов 'B' вы можете получить доступ к этому элементу. Или сделайте обратное - пусть 'B' принимает родителя как аргумент – Ian