Нет, это невозможно, так как в JavaScript нет встроенной родительской / дочерней логики.Это просто ссылки на объекты.
Обновление
о, извините, мне кажется, я неправильно понял ваш вопрос.Я задал тот же вопрос некоторое время назад: здесь .То, что вы пытаетесь сделать, это получить объект, который является «этим», в функции, которая вызвала текущую функцию.
Ответ таков: вы не можете сделать это ...
Но вы можете сделать это, используя область действия:
function Dun(val) {
var value = val;
this.__defineGetter__("value", function() {
return value;
});
}
function Foo() {
var dun = new Dun(15);
var bar1 = new Bar(10);
var bar2 = new Bar(20);
this.__defineGetter__("dun", function() {
return dun;
});
this.__defineGetter__("bar1", function() {
return bar1;
});
this.__defineGetter__("bar2", function() {
return bar2;
});
function Bar(val) {
this.__defineGetter__("value", function() {
return dun.value + val;
});
}
}
var myFoo = new Foo();
myFoo.bar1.value;
PS: Не имеет отношения к вашему вопросу, но приятно знать: поскольку
function(val){}
совпадает с
function(){
var val = arguments[0];
}
вам не нужно создавать новую переменную и передавать ей значение аргументов.Вы можете использовать переменную аргумента напрямую.