Где я могу найти пример крупного проекта JavaScript, использующего метод Крокфорда для наследования прототипа? [закрыто]

13
задан Shog9 9 August 2010 в 06:19
поделиться

3 ответа

Вынужден предложить анти-аунсер ;), хотя хотелось бы видеть большие проекты, использующие его (если такие есть). Я сам люблю Object.create и предпочитаю его, хотя я никогда не мог широко использовать его в большом проекте и не чувствую, что это должно быть так.

  1. ОО-разработчики пристрастились к оператору 'new', от этой привычки трудно избавиться, и ее легко понять с первого взгляда. Код, написанный классическим способом, сейчас легче передать следующему разработчику, что уже является сильным аргументом против Object.create.

  2. Object.create в ES5 (следующая версия JS) будет намного мощнее и кардинально отличается от Object.create как shim в ES3 (текущая версия JS). По этой причине лучше избегать Object.create (в том виде, в котором он доступен сейчас) в качестве широко используемой стратегии в больших проектах, так как когда ES5 станет мейнстримом, он будет работать иначе, чем сейчас.

  3. Большие проекты используют фреймворки (когда у вас нет нелегальных JS "ниндзя", которые настаивают на написании всего с нуля, изобретая колесо снова и снова), и все популярные фреймворки продвигают прототипическое наследование классическим способом. Они могут иметь метод Object.create где-то в виде .clone() или чего-то еще, но он скрыт в учебниках и документации по наследованию объектов и созданию подклассов.

  4. Приватные свойства невозможны с Object.create в ES3. Чем больше я возился с Object.create, тем больше проблем возникало, и как же я с ним возился...

Я много возился с Object.create и даже написал крошечный фреймворк на его основе под названием 'Objection' (если интересно, вы его найдете ;), хотя воздерживаюсь от ссылки на github) и 'JSoo' (прекращена). Это просто слишком необычно, незаконченно и прогрессивно, чтобы стать мейнстримом и поддерживаться с точки зрения человеческих ресурсов для больших проектов. Я не рекомендую его, хотя и поддерживаю.

5
ответ дан 2 December 2019 в 02:11
поделиться

попробуйте: http: / /showroom.auction123.com/auction123/index.html

Мы вообще не используем new ... Мы просто устанавливаем результат функции и используем его как класс.

Например:

// CLASS DECLARATION
var ClassName = function() {

  var public;
  var private;

  var publicFunction = function() {
    // DO STUFF
  };

  // RETURN  OBJECT
  return {
     public: public,
     publicFunction: publicFunction
  };

};

Окончательный результат просто сообщает, что будет опубликовано.

Создайте экземпляр, выполнив:

var object = ClassName();
-1
ответ дан 2 December 2019 в 02:11
поделиться

Его можно найти здесь Подключаемый модуль Nokia WRT для Visual Studio , надстройка для разработчика виджетов nokia.

Из форума nokia:

The Nokia WRT Plug-in for Visual Studio provides features that enable 
the creation, editing, testing, and deployment of WRT widgets from within
Visual Studio.
0
ответ дан 2 December 2019 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: