Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.07.2015, 17:30
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

ООП в прототипном стиле
Здравствуйте, изучаю ООП в прототипном стиле. Написал элементранейший скрипт для самообучения http://plnkr.co/edit/oPCRbIVHJ9sMedoH6x79?p=preview. Вопрос такой почему если в 14-й строке писать render.apply(this, arguments[5]); то получаю ошибку Function.prototype.apply: Arguments list has wrong type? а если писать вот так писать render.call(this, arguments[5]) то все ок.
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2015, 17:45
Аспирант
Посмотреть профиль Найти все сообщения от tysonfury2015
 
Регистрация: 22.07.2015
Сообщений: 68

Потому что функция apply принимает в качестве 2-го аргумента массив, либо объект массивоподобного типа, как в твоем случае, а ты подал ей не-массив. А прототипное ооп тут не при чем.

Последний раз редактировалось tysonfury2015, 23.07.2015 в 17:49.
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2015, 17:47
Аспирант
Посмотреть профиль Найти все сообщения от tysonfury2015
 
Регистрация: 22.07.2015
Сообщений: 68

можешь рассматривать call как сахар для apply
call(object, foo, bar, baz) === apply(object, [foo, bar, baz])
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2015, 17:49
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Moloch,
Цитата:
Вопрос такой почему если в 14-й строке писать render.apply(this, arguments[5]); то получаю ошибку Function.prototype.apply: Arguments list has wrong type? а если писать вот так писать render.call(this, arguments[5]) то все ок.
Потому, что метод apply вторым аргументом ожидает массив.
Ответить с цитированием
  #5 (permalink)  
Старый 23.07.2015, 18:46
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

спасибо за ответы, разобрался
Ответить с цитированием
  #6 (permalink)  
Старый 23.07.2015, 18:59
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Moloch, а зачем так arguments[5], почему не так border_on?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книжко по ООП krasovsky Учебные материалы 2 03.04.2013 12:50
Помогите с ооп Zim_one Общие вопросы Javascript 8 18.11.2012 00:11
ООП в javascript iostream21 Общие вопросы Javascript 11 12.07.2012 00:16
Есть ли смысл использовать ООП. Duda.Ml1986@gmail.com Оффтопик 18 18.02.2012 21:47
ООП PHP вопрос mycoding Серверные языки и технологии 9 03.06.2010 02:57