Zeroglif
User-
Posts
46 -
Joined
-
Last visited
Zeroglif's Achievements
Explorer (1/14)
0
Reputation
-
Все вместе правы одновременно. С одной стороны, если нужно показать схему решения, то нам не нужна ни "одноразовая" переменная, ни лишняя функция. Отсекать лишнее - правильно. С другой стороны, если вопрос исходит от ньюба, то он может начать копипастить в лоб - не будет кешировать ноду, не разберётся с объединением действий в одной функции и т.д. Чтобы "лишнее" не резало глаз можно было бы просто написать комментарии о возможных дополнительных обращениях и проч. И фффсё...
-
У строк есть свои достаточно гибкие методы, подойдёт для такого случая, к примеру: var s = 'man+woman=sex=children=problem', i = s.indexOf('='); alert( s.slice(0,i) ); alert( s.slice(i+1) ); Эт вряд ли, по ES строка от рега отделена в алгоритме (функция SplitMatch). Это теория. Практику можно проверять, подозреваю, большинство движков будут возиться с регом существенно дольше. От теста зависит, у меня FF3 медленнее в 2 раза, Опера9.63 в 5-6!!! раз, IE6 чуток, Хром почти одинаково...
-
Он может быть в тему, если с другой стороны взглянуть - с точки зрения внимательного отношения к вложенным функциям, пережившим контекст в котором они были созданы. Часто бывает, что во внешней функции куча локальных данных, но замыканию нужна только часть из них, остальное удерживается просто так, заодно, т.к. замыкание "помнит" не значения, не отдельные свойства, а Scope целиком. Трудно сказать, что движки делают с "как-бы-не-нужными" замыканию свойствами, оптимизируют или нет.
-
Параметр передаётся по значению. Функция 'createMyObject' живёт сама по себе, её уже держит несколько объектов - прототипы созданных объектов (через свойство 'constructor'), variable object того контекста, где этот конструктор создан (через window.createMyObject). Наличие переменных или параметров внутри внешней функции не влияет на то, как вложенная функция "запоминает" Scope, она это делает в любом случае, пусто там или не пусто.
-
Там у вас функция вложенная нарисована, всё, что нужно она "запомнит" непосредственно при своём создании, есть переменные выше (в контексте конструктора, в глобальном контексте...) или их вообще нет - ей не интересно, она сохраняет Scope и всё.
-
Экземпляры на то и экземпляры, чтобы быть единственными в своём роде. Конструктор (createMyObject) как был один, так и есть один, объект {value:inp}, как и метод alert создаются при каждом вызове конструктора.
-
Какой объект занимает память в первом случае и не занимает во втором?
-
Из функции обращение к переменной внутри функции быстрее, чем к переменной снаружи (теоретически и в большинстве случаев практически), само собой, разница едва видна под микроскопом. Глобальный объект нынче вовсю используется из-под юзверя, он использует расширения всякие браузерные, примочки, кривые а-ля гризманкиевские скрипты и так далее. В этом смысле уменьшение переменных в глобальном контексе желательно. Ну, и баги с идентификаторами пока есть, тоже могут зацепить имя переменной.
-
Ага, считаем. В js-программировании.
-
Похоже, это B.Новодворская до форума добралась. При помощи книжки "JScript is the best JavaScript" 1997 года выпуска, Валерильнишна с трудом, но вс?-таки внедрилась в здешнюю профессиональную среду, затем мастерски расфокусировала наше внимание, выпустив потешные лучи ненависти в сторону Оперы-жоперы и, наконец, когда число просмотров топика приблизилось к тр?м тысячам, сбросила маску первобытного яваскриптера и приступила к выполнению своей основной задачи - "комуняки - зло, КГБ - зло, комуняки - зло, КГБ - зло...". :)
-
Там нет так называемого dcss (IE behaviors), обычный скрипт, просто он так написан.
-
Вы судя по всему просто не знаете, как программировать на js кроссбраузерно. Скрипт на странице "про умножение" настолько прост по своему смыслу, что бедной Опере там даже не на чем капризничать. Выныривайте же, наконец, из девяностых годов и начинайте изучать кроссбраузерное программирование вместо того, чтобы терять время на смешные безаппеляционные выпады в адрес достойных браузеров. Когда научитесь - найд?те в сво?м скрипте 4-5 ошибок и упс... произойд?т чудо... Лучше "IE рулит, остальные - сосут!", взялись провоцировать тут холивар - надо действовать ж?стче. :mad:
-
homm, Дополню. Смешит целенаправленное прописывание в тексте литералов true и false, если учесть, что любое вернувшееся из функции значение при дальнейшей проверке, допустим, при проверке через if() в следующей функции будет снова конвертировано в значение типа Boolean и проверено. То есть вы легко можете выпустить из функции непосредственно req, будь в этой переменной null или object, не важно. Если же вы вс?-таки страшно захотели вернуть именно булев, то опять-таки конвертируйте req на месте (во флажковом стиле - !!req или более сложно, но нагляднее - Boolean(req)), а прописывать руками в такой операции тру и фалс - это как-будто на минуту забыть про конвертацию типов в javascript вообще. Масло масляное. И последнее - в вашей функции уже проверялось значение req, из этой ветки можно было и вернуть необходимое значение, не дублируя проверку...
-
У каждого браузера своя собственная реализация XMLHttpRequest (если она есть), она может быть почти какая угодно с точки зрения объектов в стандарте ECMA-262 или комформной/не комфорной с точки зрения документов W3C, но разная реализация никак не отвергает тот факт, что в IE7+ появился и может быть использован отдельный XMLHttpRequest Object заодно с единственно возможным ранее объектом ActiveX. Отсюда фраза: "XMLHttpRequest так до сих пор в ИЕ и нет, его эмулирует ActiveX" приблизительно такая же правильная и точная, как и фраза оппонента про то, что "XMLHttpRequest появился ещ? в IE4". AKS, вы хотите местный холивар про "жоперу" и флейм про "шизофреников" возвести в степень? Только jQuery тут и не хватало. Если дело выгорит, то я уже точно не вытерплю и вступлю с темами "bmw vs. гнусный мерин" и "плазма pioneer vs. гов?нный панас"...
-
Алекс, homm, как же вы весело спорите - один говорит, что XMLHttpRequest появился ещ? в IE4, другой говорит, что самого XMLHttpRequest так до сих пор в IE и нет. Молодцы. в какую версию IE впендюрили XMLHTTP впервые? в какую версию IE впендюрили XMLHTTP в виде нативного объекта XMLHttpRequest?