Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Google выпустила версию Chromium с поддержкой Dart «Dartium» (https://javascript.ru/forum/offtopic/25892-google-vypustila-versiyu-chromium-s-podderzhkojj-dart-dartium.html)

monolithed 19.02.2012 20:08

Цитата:

Сообщение от Mахmахmахimus
что означает стрелочка?

function

Mахmахmахimus 19.02.2012 20:20

monolithed,
Спасибо большое я тебя нашел) тперь тебе не скрыться) ответь на вопрос про поля в классах) а то я дальше делать не могу потому что не знаю что должно получиться(((

http://javascript.ru/forum/misc/2589...-klassakh.html

Octane 20.02.2012 00:12

Не понял про bind, разве в bound-функция не передает все аргументы в исходную?

Mахmахmахimus 20.02.2012 00:15

Нет, бинд только закрепляет контекст, вторым и последующими аргументами бинда будут закрепленные параметры функции.

если функция принимала 2 аргумента, а мы её забиндили к какому то контексту а так же забиндили какой то первый парамет, то потом передав забинденной функции ОДИН параметр, он будет ей трактоваться как второй.

Octane 20.02.2012 00:19

Ну и почему log = console.log.bind(console) не должно работать? Новая bound-функция привязывается к console и может принимать столько же аргументов, сколько и console.log

Nekromancer 20.02.2012 00:30

Octane,
Да, вы правы :) Естественно передаются все параметры, ведь это всего лишь обёртка привязанная к определённому контексту. Но в данном случае, нужно будет вручную передавать все возможные параметры которые придут в console.log. Не делать же так, в самом деле:
var a = console.log.bind(console);
console.log = function(){
a.apply(console /* Ну или видимо null можно */, arguments);
}

Смысл байнда тогда отпадает :)

П.С. А можно извратиться так:
var a = Function.prototype.apply.bind(console.log, console);
console.log = function(){
a(arguments);
}

Octane 20.02.2012 00:37

ааааааааа нипанимаю, все ведь работает без apply:
var log = console.log.bind(console);
log(1,2,3,4)


Nekromancer 20.02.2012 00:40

Octane,
Да работает, работает. Но вы видели пример Аквариума, что он там напридумывал? Это выглядело примерно так:
var log = console.log.bind(console);
console.log = function(a){
log(a);
};

Так будет работать только один параметр.

Mахmахmахimus 20.02.2012 00:46

Некроморф хочет сказать что логер который я сделал для примера декоратора не достаточно полный. Так как не может принимать более одного параметра. За что ему и спасибо нашему капитану очевидность. Да, это ни ка не относится к декоратору, но он поставил смайлик что означало что он как бы к слову.

Я подумал что он не знает что лог нужно биндить к контексту консоли чтобы он работал. И обьяснил ему что в другом контексте работать не будет.

Тут он показал что есть эплай, тогда за место того чтобы сказать ну и на хрена мне в примере декоратора эплай, я начал ему обьяснять что бинд работает быстрее, тогда он мне сказал что мой логер не полный.

x-yuri 20.02.2012 11:40

Цитата:

Сообщение от monolithed
У меня такое чувство, что Dart начали писать еще в 80-х.

хм, а почему?


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