Я действительно не уверен, что это возможно в Javascript. Вот моя функция:Область Javascript и локальные переменные
var tree = function(name, callback) {
if (this.name) {
this.name.push(name)
print(this.name)
} else {
this.name = []
}
callback()
}
Я хотел бы использовать его как следует и распечатать иерархию:
tree("john", function() {
tree("geoff", function() {
tree("peter", function() {
tree("richard", function() {
})
})
})
tree("dave", function() {
})
})
Вот желаемый результат:
// ['john']
// ['john', 'geoff']
// ['john', 'geoff', 'peter']
// ['john', 'geoff', 'peter', 'richard']
// ['john', 'dave']
, но, к сожалению, я получение
// ['john', 'geoff', 'peter', 'richard', 'dave']
для последнего вызова функции. Есть ли способ получить желаемый результат?
Сердечные приветы
Adam рощами
Вы пытаетесь получить желаемый результат, не изменяя функцию дерева или не изменяя способ, которым вы его вызываете? – sberry
Вы просто заботитесь о внешности печатного выхода или результирующей структуры массива? Кроме того, с отсутствием оператора 'new' вы знаете, что' this' относится к 'window', да? –
Я был бы рад изменить функцию дерева, но скорее не изменил бы способ ее вызова. Извините за отложенный ответ - я в Европе. – 2010-01-16 07:45:45