Лучший способ использовать «хорошие части» Javascript

По рекомендации Stackers я читал превосходный Javascript Крокфорда : «Хорошие части» .

Это отличная книга, но так как большая ее часть посвящена описанию наилучшего способа использования основных функций Javascript, я не уверен, каким образом я могу применить его советы на практике, не дублируя усилия многих других программистов Javascript.

Возьмите этот отрывок, например:

Когда вы создаете новый объект, вы можете выбрать объект, который должен быть его прототипом. Механизм, который Javascript предоставляет для этого, является грязным и сложным, но его можно значительно упростить. Мы добавим createметод к Objectфункции. createМетод создает новый объект , который использует старый объект , как и его прототип.

if (typeof Object.create !== 'function') {
 Object.create = function(o) {
  var F = function () {};
  F.prototype = o;
  return new F();
}

Я мог бы вручную добавить этот код во все мои проекты Javascript, но отслеживать все было бы огромной болью.

Существуют ли библиотеки, которые реализуют рекомендации The Good Part и тем самым избавляют меня от необходимости отслеживать их (/ физически выводить их все)?

14.12.2008 19:34:00
5 ОТВЕТОВ
РЕШЕНИЕ

Prototype имеет много замечательных функций, включая помощника Class, который обрабатывает детали JS-наследования через прототип объекта.

Редактировать: черт, я постоянно забываю, что jQuery (моя собственная библиотека выбора) имеет jQuery.extend

5
14.12.2008 23:57:53
jQuery.extend()копирует атрибуты переданных объектов в целевой объект. Вы не можете указать прототип для целевого объекта. IOW: это служит другой цели, чем Object.create().
feklee 3.08.2012 14:57:23

Разве он не работает на Yahoo? Вы всегда можете использовать библиотеки пользовательского интерфейса Yahoo .

Лично я неравнодушен к JQuery , так как он кажется мне более лаконичным, но вы знаете: лошади для курсов.

1
14.12.2008 22:06:33

Додзё очень внимательно следил за идеями Крокфорда. Например, есть реализация фрагмента кода, который вы реализовали выше в функции dojo.delegate(в еще более быстрой форме).

Я не думаю, что есть какой-то конкретный проект, который следует его рекомендациям. Большинство инструментариев на самом деле не согласны с некоторыми из его рекомендаций и шаблонов. Если вас интересует конкретная функциональность, например приведенный выше фрагмент кода, стоит спросить, какие конкретные инструменты из книги вы хотите использовать в своих проектах.

1
14.12.2008 22:52:20

Я думаю, что YUI ближе всего к тому, что Крокфорд преподает в своей книге. (Он также является архитектором Yahoo, и это имеет смысл)

0
28.11.2010 08:42:57

Взгляните на es5-shim , библиотеку, которая предоставляет - хотя и неполную - shim для Object.create()и других вещей.

0
3.08.2012 15:00:24