Объявить такую функцию можно двумя, по сути, эквивалентными способами.
На самом деле, способов существенно больше. Правда, использовать их я бы не советовал.
+function(){console.log(5)}() // подставьте свой любимый оператор
1,function(){console.log(5)}() // подставьте своё любимое число, строку или ещё какое-нибудь выражение
[function(){console.log(5)}()]
Общее же правило таково: если функция является частью выражения, то она становится FunctionExpression и является выражением, т.е. её можно вызвать. Если же она не является частью выражения, то она является FunctionDeclaration и вызову не поддается. Например:
function fnc(){} // FunctionDeclaration
fnc = function(){} // FunctionExpression
Отсюда же получаем, что следующая запись вполне корректна
fnc = function(){return 5}()
Но лично я не советую её применять, поскольку для очень длинных функций становится не очевидно, что будет результатом выражения — то ли функция, то ли её значение (по-умолчанию предполагается первое).
Когда я игрался с этой демкой, у меня всё было быстро и плавно. Сейчас почему-то мне говорят, что моя видеокарта не поддерживает WebGL.
И это на ноутбуке двухгодичной давности с начинкой в GF 103M, Intel Pentium Dual Core T3400 2.16GHz, 3Gb RAM.
Ну так никто и не собирается делать GC в C++ (тем более со счётчиком ссылок). Одно дело удалять неопределённое количество мёртвых объектов с помощью подсчёта ссылок и совсем другое — следить за одним существующим.
Лично я не вижу причин не делать этого. weak_ptr'ы хороши ещё и тем, что есть возможность проверить, жив ли ещё объект, на который они ссылаются, в то время как с сырыми указателями всё не так просто.
Зачем новый синтаксис? Вам не нравится точка как оператор обращения к свойству?
По библиотекам вроде jQuery:
Вы про спецификации слышали? Они, как бы, утверждаются не одним лишь гуглом.
Если и считать это проблемой, то это проблема не языка.
— Anatomy
— Making Green Buildings
— Model Thinking
— Information Theory
— Computer Security
Общее же правило таково: если функция является частью выражения, то она становится FunctionExpression и является выражением, т.е. её можно вызвать. Если же она не является частью выражения, то она является FunctionDeclaration и вызову не поддается. Например:
Отсюда же получаем, что следующая запись вполне корректна
Но лично я не советую её применять, поскольку для очень длинных функций становится не очевидно, что будет результатом выражения — то ли функция, то ли её значение (по-умолчанию предполагается первое).
По этой теме советую почитать статью на javascript.ru.
И это на ноутбуке двухгодичной давности с начинкой в GF 103M, Intel Pentium Dual Core T3400 2.16GHz, 3Gb RAM.
По библиотекам вроде jQuery:
Вы про спецификации слышали? Они, как бы, утверждаются не одним лишь гуглом.
Если и считать это проблемой, то это проблема не языка.