Показать сообщение отдельно
  #8 (permalink)  
Старый 06.11.2009, 23:28
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Plest
Добавил, но из списка книг оно выбивается. По-моему, лучше на конкретные записи в подходящих местах ссылки поставить
Статья ваша, вам решать Да, среди списка книг ссылка на web-log выбивается. Однако, в отличие от статичной книги, блог - это более живая информация, она может меняться, дополняться, корректироваться согласно времени (и благодаря комментариям компетентных коллег).

Как вариант, можно ниже где-нибудь в ссылках оставить, а не в списке литературы. Только тогда, получается, не в разделе " Блоги известных авторов книг ", поскольку я, всё-таки, книг (пока) не написал и не знаю, есть ли большой смысл.

Книга Флэнагана, действительно, очень неплохая (кто-то называет её "лучшей книгой по JS", кто-то "наименее плохой" - два высказывания, объективно, верные). Он использует собственную терминологию, местами что-то перевирает, но это можно оправдать - за некоторыми упрощениями кроется благородное желание рассказать это очень понятно, хоть и местами поверхностно и в альтернативных (выдуманных) названиях.

Сообщение от Plest
По поводу механики ООП в JavaScript IMHO книге Стояна Стефанова нет равных.
Я, к сожалению, подробно не читал эту книгу, мельком по диагонали пролистывал. Там тоже есть недочёты. Например, он пишет сначала, что каждый объект имеет свойство .constructor, которое записывается в объект при создании, что, естественно, неверно:

Сообщение от Chapter 4 Objects
When an object is created, a special property is assigned to it behind the scenes—the constructor property. It contains a reference to the constructor function used to create this object.
Далее, показывается (невзначай), что .constructor, всё-таки, принадлежит прототипу (хотя, я не знаю, может, это всё ещё следствие того, что все объекты, "получают" свойство .constructor):

Сообщение от Chapter 5 Prototype
Now let's take this lookup one step further. Every object has a constructor. The prototype is an object, so it must have a constructor too. Which in turn has a prototype. In other words you can do:

>>> newtoy.constructor.prototype.constructor

>>> newtoy.constructor.prototype.constructor.prototype

This might go on for a while, depending on how long the prototype chain is, but you eventually end up with the built-in Object()
Последний код - явно полная белиберда. Показана рекурсивная ссылка функции на саму себя и снова на свойство prototype. Настоящая же цепь прототипов - она неявная (implicit) и прототип объекта - это внутреннее свойство [[Prototype]], которое недоступно напрямую и не может быть изменено (за исключением, опять же, расширений типа __proto__).

Также, цепь прототипов заканчивается не на Object, как пишется (и даже не на Object.prototype), а на Object.prototype.[[Prototype]], который и будет равен null.

Возможно, есть ещё недочёты - я только бегло просмотрел главы об объектах и прототипах. Вот именно в этом статичная книга и отличается от блога - в ней уже не исправить подобных грубых ошибок. В блоге же всегда можно посоветоваться с коллегами и решить, как лучше написать/подать тот или иной материал.

Сообщение от Plest
нет равных
Ну, я лично ни с кем не соревнуюсь Я просто пишу то, что знаю, передавая знания тем, кому это интересно.
__________________
Тонкости ECMAScript

Последний раз редактировалось Dmitry A. Soshnikov, 07.11.2009 в 12:48.
Ответить с цитированием