Показать сообщение отдельно
  #4 (permalink)  
Старый 25.05.2014, 11:24
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,501

Kapalak, лол. Точку с запятой ставить надо.
Number.prototype.myFunc = function(x) {
  alert('x = ' + x + '\nthis = ' + this);
}*!*;*/!*

(5).myFunc(1);

У тебя же получается:
Number.prototype.myFunc = function(x) {
  alert('x = ' + x + '\nthis = ' + this);
}(5).myFunc(1);

Т.е. функция создаётся и сразу вызывается с аргументом 5 в контексте window, а после, уже к возврату функцции(в данном случае undefined) пытается примениться несуществующий пока myFunc, естественно с ошибкой.
__________________
29375, 35

Последний раз редактировалось Aetae, 25.05.2014 в 11:28.
Ответить с цитированием