|
apply и call. В чём отличия?
Читал стандарт языка, но ответа не нашел... Заметил, только что в call можно передавать много аргументов... Если есть ещё какие-нибудь отличия - напишите пжлст пример, где их можно посмотреть. Спс:)
|
А и ещё один вопрос - чтобы не плодить тем... Не могу найти описание хитрой конструкции:
var i=(function(){...})(); точно помню, что где-то было... Нужно именно описание, а не примеры... |
Цитата:
function sum(a,b) { this.c = a + b } var obj = {} sum.call(obj, 1,2) // или sum.apply(obj, [1,2]) alert(obj.c) // => 3 Цитата:
http://javascript.ru/forum/misc/4071...jj-vopros.html |
Цитата:
Цитата:
Цитата:
Цитата:
Но теперь я спокоен:) |
Получается, для того, чтобы выполнить JS-код не засрав при этом window можно использовать так:
(function(){...})() Будем иметь ввиду... Углубляться, думаю, не стоит - работает и хорошо:) |
Цитата:
если ты будешь внутри объявлять переменные или функции без var, то все равно засрешь |
Цитата:
У меня вот ещё какой вопрос: Например, есть такой код: function addClick(){ var i='New var'; ele.onclick=function(){ alert(i); } } Тут обычное замыкание и при каждом вызове addClick будет создаваться функция-обработчик. Так?! А что изменит такой код: function addClick(){ var i='New var'; ele.onclick=(function(){ return function(){alert(i)} })(); } Т.е. тут тоже замыкание, но я так понимаю, анонимная функция не будет клонировацо, т.к. отчищается после вызова... Мне самое главное понять, что остаёться в памяти... И ещё... В чём отличия записей: var f=function(){} и var f=(function(){}); Сори, если пишу глупости:) |
Цитата:
Цитата:
|
Аха, понятно...
Цитата:
Вот пытаюсь писать "грамотные" скрипты... Не нравятся замыкания... Вот разбираюсь... |
Ещё вопрос:
такой вариант оставит жить [[scope]] внешней функции: function(a,b){ var f=new Function(a,b,'return a+b'); } ?! Если да, то как этого избежать?! |
Часовой пояс GMT +3, время: 19:07. |
|