Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   аргументы arguments (https://javascript.ru/forum/misc/62064-argumenty-arguments.html)

DivMan 22.03.2016 20:00

аргументы arguments
 
Я не понимаю этот код

function printArgs() {
  arguments.join = [].join; 

  var argStr = arguments.join(':'); 

  alert( argStr ); 
}

printArgs(1, 2, 3);




Как это понимать?
arguments.join = [].join;


Аргументы из массива преобразовали в строку, потом эту строку преобразовали в массив, а потом опять в строку.

рони 22.03.2016 20:36

DivMan,
строка 2, создали новое свойство в обьекте arguments, срока 4 использовали новое свойство.
:-?

DivMan 22.03.2016 21:01

Я не понимаю вот этого [].join.
Получается из массива делается строка?

рони 22.03.2016 22:21

DivMan,
arguments.join = function () {

     };
может так понятнее?

Decode 22.03.2016 23:03

Цитата:

Сообщение от DivMan
Я не понимаю вот этого [].join.

А так?
arguments.join = Array.prototype.join;

DivMan 22.03.2016 23:44

Прототипы я ещё не изучал

DivMan 22.03.2016 23:46

Цитата:

Сообщение от рони (Сообщение 411751)
DivMan,
arguments.join = function () {

     };
может так понятнее?

Почему метод join написан без скобок? Он же обязательно должен писаться со скобками.

рони 22.03.2016 23:49

Цитата:

Сообщение от DivMan
Он же обязательно должен писаться со скобками

почему?

DivMan 23.03.2016 00:14

Вызов arr.join(str) берет массив и склеивает его в строку, используя str как разделитель. То есть без разделителя нельзя.

А чем отличается call от callee?

DivMan 23.03.2016 00:17

И какой смысл от этого?

var a = ['Ветер', 'Дождь', 'Огонь'];
var myVar1 = a.join

myVar1
function join() { [native code] }


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