Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Зачем нужен bind? (https://javascript.ru/forum/misc/49884-zachem-nuzhen-bind.html)

govnocoder 02.09.2014 01:13

Зачем нужен bind?
 
Если я не прав, то поправьте, но я, хоть убей, не понимаю, нахрен нужна эта нелепая конструкция. Обычно, ее расхваливают, приводя примеры, к слову, столь же нелепые, как и она сама. Типо:
o={
arr: [],
add: function(x){this.arr.push(x)},
}

//удивительно(!!!), но так не работает:
g_arr=[1,2,3]
//g_arr.forEach(o.add)//TypeError: Cannot call method 'push' of undefined

//еще бы, this связывается с глобальным контекстом, с чего бы ей, внезапно, работать

g_arr.forEach(o.add, o)// O-o-o, а вот так работает
g_arr.forEach(o.add.bind(o)) // так тоже, это, типа, сильно лучше

// Или сделать вот так

o.add=o.add.bind(o)
g_arr.forEach(o.add)

Спрашивается, с чем ты изначально хотел связать this.arr? Если ты хотел связать ее с o.arr, то почему ты сразу не написал o.arr, зачем ты, сука, написал this? Это все напоминает такую ситуацию: стоматологу, дергающему зубы через жопу вместо того, чтобы, кагбе намекнуть, что можно попробовать делать это через рот, предоставляют годный инструмент для удобного дерганья через жопу.

Ладно, может я и заблуждаюсь, но хотелось бы увидеть пример хоть сколько-нибудь полезного применения.

Sweet 02.09.2014 01:46

govnocoder, и что ты предлагаешь?

govnocoder 02.09.2014 01:51

Цитата:

Сообщение от Sweet
govnocoder, и что ты предлагаешь?

Идеально было бы выпилить нахрен, но кто меня будет слушать?

Sweet 02.09.2014 01:55

Цитата:

Сообщение от govnocoder
но кто меня будет слушать?

Именно!

Octane 02.09.2014 02:20

Как же он надоел, очередной аккаунт пользователя foo/nanaets/newobject отправляется в бан.


Часовой пояс GMT +3, время: 14:06.