Здравствуйте. Недавно столкнулся с такой непоняткой. Допустим я хочу дописать свой метод в прототип Number. И тут столкнулся с непонятным для меня поведением.
Допустим есть такой код.
Number.prototype.myFunc = function(x) {
alert('x = ' + x + '\nthis = ' + this);
}
Если записать вызов myFunc так
5..myFunc(1)
То всё работает так как и задумано - x равен 1, а this равен 5.
Но если вызвать метод так:
(5).myFunc(1)
То происходит абсолютно непонятная мне фигня - x становится равным 5, а this ссылается на window. А 1 вообще непонятно куда девается, в arguments ее вообще нет. Хотелось бы узнать что вообще происходит при втором варианте записи?