Показать сообщение отдельно
  #1 (permalink)  
Старый 25.08.2010, 13:47
Аспирант
Отправить личное сообщение для Ozerich Посмотреть профиль Найти все сообщения от Ozerich
 
Регистрация: 03.08.2009
Сообщений: 33

Вопрос по функции call()
Вот пример использования функции call()
var a = Array.prototype.map.call("Hello World", 
                                 function(x) { return x.charCodeAt(0); })


Почему в итоге получается массив [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]?

Я так понимаю что строка преобразуется в массив, а потом над каждым элементом выполняется функция. Но почему когда написать
var sa = new Array("Hello world");
var f = function(x){return x.charCodeAt(0);}
res = sa.map(f);


sa преобразуется в массив с одним элементом?
Ответить с цитированием