Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2016, 20:00
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

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

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

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

  alert( argStr ); 
}

printArgs(1, 2, 3);




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


Аргументы из массива преобразовали в строку, потом эту строку преобразовали в массив, а потом опять в строку.
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2016, 20:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

DivMan,
строка 2, создали новое свойство в обьекте arguments, срока 4 использовали новое свойство.
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2016, 21:01
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Я не понимаю вот этого [].join.
Получается из массива делается строка?
Ответить с цитированием
  #4 (permalink)  
Старый 22.03.2016, 22:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

DivMan,
arguments.join = function () {

     };
может так понятнее?
Ответить с цитированием
  #5 (permalink)  
Старый 22.03.2016, 23:03
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Сообщение от DivMan
Я не понимаю вот этого [].join.
А так?
arguments.join = Array.prototype.join;
Ответить с цитированием
  #6 (permalink)  
Старый 22.03.2016, 23:44
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Прототипы я ещё не изучал
Ответить с цитированием
  #7 (permalink)  
Старый 22.03.2016, 23:46
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Сообщение от рони Посмотреть сообщение
DivMan,
arguments.join = function () {

     };
может так понятнее?
Почему метод join написан без скобок? Он же обязательно должен писаться со скобками.
Ответить с цитированием
  #8 (permalink)  
Старый 22.03.2016, 23:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от DivMan
Он же обязательно должен писаться со скобками
почему?
Ответить с цитированием
  #9 (permalink)  
Старый 23.03.2016, 00:14
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

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

А чем отличается call от callee?
Ответить с цитированием
  #10 (permalink)  
Старый 23.03.2016, 00:17
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

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

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

myVar1
function join() { [native code] }
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Jin: И снова о наследовании tenshi Ваши сайты и скрипты 16 19.08.2013 20:30
Аргументы ссылки передавать в поле формы winter Общие вопросы Javascript 0 06.04.2013 20:17
Аргументы функции w46823 Events/DOM/Window 4 15.04.2012 22:00
Как передать аргументы в callback функцию Artemiy-tlt jQuery 7 21.09.2011 15:08
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21