Показать сообщение отдельно
  #4 (permalink)  
Старый 12.11.2014, 17:54
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от Aetae
Всё просто же. func.call() это вызов call в котором this(для call) == func. Вторым call вы подменяете this для первого call на новую функцию.
Я прошу прощения, но, все же давайте проясним.

func.call -- это функция, this которой -- это объект func, который является экземпляром Function
func.call.call -- это функция, this которой -- это объект call, который является экземпляром Function.

Обе они -- экземпляр Function, однако, call, которая вызывается в контексте call, ведет себя иначе, чем call, вызванный в контексте другой функции. Очевидно, что объект call, имеет в себе что-то, помимо того, что он наследует от Function

Так вот, интересно как раз то, что такого есть в call, чего нет в обычном объекте функции. То есть, это что-то, это должно быть тем, что вызывает эффект вызова функции, поданной в качестве аргумента func.call.call(function(){})
Ответить с цитированием