Показать сообщение отдельно
  #9 (permalink)  
Старый 02.10.2012, 13:59
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от melky
перевод полное говно. я на английском лучше понимал, чем этот промпт.
Да книга уже не та (

1. Терминологическая путаница и отсебятина: класс, подкласс, суперкласс, абстрактный класс, модуль, атрибуты (class, prototype, extension) и пр.

2. Вообще лишние главы: Подмножества и расширения JavaScript, Серверный JavaScript, Каскадные таблицы стилей (в этом объёме), Библиотека jQuery

3. Местами полнейший бред:

Цитата:
Если присвоить значение переменной, не объявленной с помощью инструкции var, JavaScript неявно объявит эту переменную за вас. Однако переменные, объявленные таким образом, всегда создаются как глобальные, даже если они работают только в теле функции. Чтобы не создавать глобальную переменную (или не использовать существующую), когда достаточно локальной переменной для отдельной функции, всегда помещайте инструкцию var в тело функции. Лучше всего объявлять с ключевым словом var все переменные – и глобальные, и локальные.
Никакого неявного объявления переменной не происходит, и это легко проверить, т.к. в отличии от свойств (в данном случае речь идет о свойствах глобального объекта) переменные нельзя удалить.

В этом правиле есть только одно исключение и оно четко прописано в стандарте:

'use strict';
global = 1;
alert(global) // ReferenceError


Цитата:
addEventListener()
Спецификация со временем может измениться так, что
будет допустимо опускать третий аргумент вместо того, чтобы явно передавать
в нем значение false, но на момент написания этих строк отсутствие третьего
аргумента в некоторых текущих броузерах приводила к ошибке.
Вместо того чтобы указать на спецификацию DOM Level 3 Events, какие-то догадки.

Цитата:
addEventListener()
Вторым аргументом
методу addEventListenerQ передается функция, которая должна вызываться при
возникновении события указанного типа.
Полный бред!
Такое чувство что он даже не заглядывал в спецификацию DOM Level 2 Events:

<script>
function EventListener(element, phase)
{
	var listener = {
		addEvent: function (type, callback)
		{
			var stack = (this["@" + type] || (this["@" + type] = []));

			if (!~stack.indexOf(callback))
				stack.push(callback);

			return this;
		},

		handleEvent: function (event)
		{
			var stack = this["@" + event.type];

			if (stack)
			{
				stack.forEach(function (callback, index, stack)
				{
					if (callback.call(this, event, callback, this) === false) {
						this["@" + event.type] = stack.slice();
						stack.length = 0;
					}
				}, this);
			}
		},

		removeEvent: function (type, callback)
		{
			var stack = this["@" + type], i;

			if (stack && ~(i = stack.indexOf(callback)))
				stack.splice(i, 1);

			return this;
		}
	};

	element.addEventListener('click', listener, phase || false);

	return listener;
}

var listen = new EventListener(document);

listen.addEvent("click", function (event) {
	alert(event.target);
});
</script>


Или пример чуть проще, но не менее интересней

<script>
var array = null;

document.addEventListener('click', array = [], false);

array.handleEvent = function(event) {
  alert(event.target)
}; 
</script>


4. Ни слова о MutationEvent (и MutationObserver как замены), AnimationEvent, Microdata API и проблемах реализации.

5. Про ECMAScript 5 вообще все очень скудно, а некоторые части справочника чуть ли не полностью скопированы из 5-го издания, без учета ES 5

6. Много воды, неточностей, упущений и нудятины!
Ответить с цитированием