Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   что есть mootols? (https://javascript.ru/forum/misc/2757-chto-est-mootols.html)

HelpeR 07.02.2009 22:01

что есть mootols?
 
Здравствуйте всем! Видел уже давно код фрэймворка mootols но как то не задумывался, что это вообще куча чего то очень не понятного. Очень интересно, тут какая то функция, которой передается 3 или 4 аргумента... кто знает как вообще работает этот мутулс.
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('m 8e={7Y:\'1.11\'};k $4A(U){h(U!=75)};k $r(U){o(!$4A(U))h Y;o(U.3c)h\'O\';m r=4w U;o(r==\'2A\'&&U.7T){1O(U.5i){W 1:h\'O\';W 3:h(/\\S/).2o(U.7F)?\'8R\':\'9i\'}}o(r==\'2A\'||r==\'k\'){1O(U.77){W 1G:h\'1e\';W 5c:h\'56\';W 1s:h\'4Q\'}o(4w U.P==\'4l\'){o(U.2b)h\'9l\';o(U.78)h\'V\'}}h r};k $3s(){m 3L={};C(m i=0;i<V.P;i++){C(m t 17 V[i]){m ap=V[i][t];m 4s=3L[t];o(4s&&$r(ap)==\'2A\'&&$r(4s)==\'2A\')3L[t]=$3s(4s,ap);14 3L[t]=ap}}h 3L};m $N=k(){m 15=V;o(!15[1])15=[c,15[0]];C(m t 17 15[1])15[0][t]=15[1][t];h 15[0]};m $3t=k(){C(m i=0,l=V.P;i<l;i++){V[i].N=k(1n){C(m 1w 17 1n){o(!c.1l[1w])c.......

и так далее продолжается первый агрумент потом второй и третий 62,709, и четрвертый тоже куча какая то
||||||||||||this|||||return|||function||var||if||el|type||property|options|||||||event|for|||Element|fn|value|to|from|elements|window|document|extend|element|length|bind|events||param|obj|arguments|case|Fx|false||||new||else|args||in|contains|push|Math|true|items|now|array|css|style|className|result|null|selector|prototype|parent|props|values|break|name|start|Class|transition|keys|each|prop|parsed|Elements|mode|relatedTarget|current|custom|timer|initialize|opacity|Array|nocash|Garbage|delay|join|unit|overflown|temp|switch|getStyle|parse|ie|call|documentElement|addEvent|params|pos|key|Event|rgb||Methods|create|context|max|getElementsByTagName|text||map|margin|CSS|item|properties|tag|parentNode|match|Events|string|filter|set|Transitions|top|returns|shared|test|time|stop|offset|index|fireEvent|iCss......'.split('|'),0,{}))
и в конце split. Хотелось бы узнать как это вообще работает. Может узнаю что нибудь новое в js

Андрей Параничев 07.02.2009 22:08

HelpeR,
MooTools это JavaScript фреймворк.
А код, который вы выложили, это обфусцированный исходник этого фреймворка с помощью утилиты packer.

Другими словами, исходник самого фреймворка не такой "страшный", как сжатый и обфусцированный код.

Вот, например, если такой простой вызов, как:
alert(1);

пропустить через packer, то получится следующий код:
eval(function(p,a,c,k,e,r){e=String;if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'^$'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('alert(1);',[],1,''.split('|'),0,{}))


Часовой пояс GMT +3, время: 10:40.