PDA

Просмотр полной версии : Определение типов потомков _глобал


Diomas
30.08.2003, 01:38
Почему у потомков _global не определяются типы? Что я сделал не так?
function trackObject (obj, objName, level) {
var indent = "";
for (var tab = 1; tab <= level; tab ++) {
indent += "\t";
}
var type = typeof obj;
trace (indent + objName + " (" + type + ")");
ASSetPropFlags(obj,null,6,true);
for (var prop in obj) {
trackObject (prop[obj], prop, level + 1);
}
}
trackObject (_global, "_global", 0);

Пушистик
30.08.2003, 14:28
function TrackObject() {
this.indent = "";
this.greet = "String";
this.num = 56456564;
this.getProps = function() {
for (prop in this) {
trace(typeof this[prop]);
}
};
}
_global = new TrackObject();
_global.getProps();

Diomas
30.08.2003, 17:12
Назначение кода, не в том, чтобы он перечислил свойства некоторого объекта, а в том, чтобы он рекурсией прошелся по объектам _global'а. А он перечисляет только непосредственно потомков глобала, а рекурсия дальше не копает потому, что у этих потомков оказывается тип - undefined. Хотя, насколько я понимаю, у них должны быть типы Object, String, Function и т.д.

Nox Noctis
30.08.2003, 19:58
ыыы... :))

не: trackObject (prop[obj], prop, level + 1);

а: trackObject (obj[prop], prop, level + 1);

но учти что рекурсия у тебя будет бесконечная, так что там еще надо условий выхода понавесить...

Diomas
31.08.2003, 01:47
Ё-МОЁ!!!!!!!!!!!
Про prop[obj] действительно смешно получилось! Надо же и, главное, сколько не просмаривал - ошибки не видно. Вот что значит взгляд со стороны! Большое спасибо.
Насчет бесконечности это в __proto__.apply?
Чего это за функция такая? "Вещь в себе", можно сказать =).