Сообщение от 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
|
нет равных
|
Ну, я лично ни с кем не соревнуюсь
Я просто пишу то, что знаю, передавая знания тем, кому это интересно.