PDA

Просмотр полной версии : Интересное с XMLNode.attributes. Как такое может быть?


-=VoskreS=-
01.09.2005, 18:15
Написал такой скрипт :

var str = "<ppp atr='ATR'>CCCCCCCCC</ppp>";
var xxx1 = new XML(str);

var nd1 = xxx1.firstChild;

trace(nd1.attributes.atr);//выводит ATR
trace(nd1.attributes);//выводит [type Object]
trace(typeof nd1.attributes);//выводит object
trace(nd1.attributes instanceof Object);//выводит false
trace(""+nd1.attributes);//выводит undefined

Как это объяснить ?

iNils
01.09.2005, 18:20
trace (typeof ("" + nd1.attributes));
и сразу поймешь
в Mx вместо undefined будет пустая строка

7thsky™
01.09.2005, 21:27
А что это объясняет?

З.Ы. я знаю почему так, что не так в attributes но не понял к чему ты свою строчку привел

iNils
01.09.2005, 21:57
А что это объясняет?

З.Ы. я знаю почему так, что не так в attributes но не понял к чему ты свою строчку привел
взяв обычный объект
obj = {r:3};
trace (obj);
trace (typeof obj);
trace ("" + obj);
trace (typeof ("" + obj));
вы получите тоже самое.

и еще
attributes хотя и является объектом, но не наследует от него его свойств и методов Object. это можно увидить воспользовавшись данным кодом:
o = {r:3};
x = new XML ("<no r='3'/>");
ASSetPropFlags (o, null, 6, true);
for (arg in o) {
trace (arg);
}
trace ("-----------------");
ASSetPropFlags (x.firstChild.attributes, null, 6, true);
for (arg in x.firstChild.attributes) {
trace (arg);
}

iNils
01.09.2005, 22:00
и вот еще
r = 1;
trace (typeof r);
trace (typeof ("" + r));

7thsky™
01.09.2005, 22:01
:) ну да, это точно такая же фича флэша как и _global :) но разве это столь очевидно? :)

iNils
01.09.2005, 22:02
:) ну да, это точно такая же фича флэша как и _global :) но разве это столь очевидно? :)
я к тому что прибавля к String чтоли бо, на выходе получешь String