|
08.02.2013, 13:59
|
|
Профессор
|
|
Регистрация: 02.08.2012
Сообщений: 293
|
|
Растолкуйте, пожалуйста код (внутри)
socket.on('data', function (data) {
data.__sock = parseInt(data.__sock);
if(data.__sock > 0 && data.__sock !== userId) return;
for (f in data) {
if(f !== undefined && typeof window[f] == 'function')
{
var func = window[f];
func(data[f]);
} else if(f !== undefined && f.indexOf(".") != -1) {
var re = /([a-z]{1,})\.([a-z]{1,})/i;
found = f.match(re);
if(typeof window[found[1]] == 'object' && typeof window[found[1]][found[2]] == 'function') {
var func = window[found[1]][found[2]];
func(data[f]);
}
}
}
});
что-то совсем я потерялся, что и когда запускается?.
|
|
08.02.2013, 14:31
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Может так доходчивей ?
socket.on('data', function (data) {
data.__sock = parseInt(data.__sock);
if(data.__sock > 0 && data.__sock !== userId) return;
for (f in data) {
if(f !== undefined && typeof window[f] == 'function') {
var func = window[f];func(data[f]); return;
}
if(f !== undefined && f.indexOf(".") != -1) {
var re = /([a-z]{1,})\.([a-z]{1,})/i;
found = f.match(re);
if(typeof window[found[1]] == 'object' && typeof window[found[1]][found[2]] == 'function') {
var func = window[found[1]][found[2]];
func(data[f]);
}
}
}
});
|
|
08.02.2013, 14:34
|
|
Профессор
|
|
Регистрация: 02.08.2012
Сообщений: 293
|
|
хотелось бы услышать комментарии по прохождению цикла фор
|
|
08.02.2013, 14:38
|
Профессор
|
|
Регистрация: 14.09.2011
Сообщений: 523
|
|
Код не мой, я просто размести объяву?
|
|
08.02.2013, 15:05
|
|
Профессор
|
|
Регистрация: 02.08.2012
Сообщений: 293
|
|
по пятницам, я так понимаю, здесь не принято подавать?..
(нико кланяясь) дякуэмо вам!!!
|
|
08.02.2013, 15:20
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
deivan,
Здесь сложно объяснить, поскольку в цикле тестируются переменные, не описанные в теле данной функции, тестируется наличие и тип
И, в зависимости от результата присваиваются глобальные имена
|
|
08.02.2013, 15:21
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
deivan,
а в поиске посмотреть как работает цикл for in религия не позволяет? и чем он отличается от цикла со счётчиком for ?
|
|
08.02.2013, 15:31
|
|
Профессор
|
|
Регистрация: 02.08.2012
Сообщений: 293
|
|
dmitriymar, мое непонимание не касается принципа работы цикла.
А вот Deff все верно понял - я с трудом понимаю что там в глобальную область уходит...
(нашел кусок чужого кода, он интересно построен, захотелось разобраться.. )
|
|
08.02.2013, 15:40
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Ксать вот эта фигня f !== undefined ) может и неверна
alert(f !== undefined )
Наверное так
<script>
alert(typeof f != 'undefined' )
var f=1;
alert(typeof f != 'undefined' );
</script>
Последний раз редактировалось Deff, 08.02.2013 в 15:58.
|
|
08.02.2013, 15:42
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
socket.on('data', function (data) {
data.__sock = parseInt(data.__sock);
if(data.__sock > 0 && data.__sock !== userId) return;
for (f in data) {
if(typeof f != 'undefined' && ) return;
if(typeof window[f] == 'function') {
var func = window[f];func(data[f]); return;
}
if(f.indexOf(".") != -1) {
var re = /([a-z]{1,})\.([a-z]{1,})/i;
found = f.match(re);
if(typeof window[found[1]] == 'object' && typeof window[found[1]][found[2]] == 'function') {
var func = window[found[1]][found[2]];
func(data[f]);
}
}
}
});
Последний раз редактировалось Deff, 08.02.2013 в 15:53.
|
|
|
|