Должен ли я использовать прототипы, если мне не требуется наследование или оптимизация - PullRequest
0 голосов
/ 19 января 2012

Если мой сайт не требует какой-либо оптимизации, а структура моего объекта довольно ровная, и поэтому нет необходимости в наследовании, я должен вообще использовать прототипы:

MyObject.prototype.<something>

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

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

Есть ли какие-либо другие преимущества или варианты использования прототипа?

Ответы [ 2 ]

1 голос
/ 19 января 2012

Это шаблон организации кода.

Существует два хороших способа обмена методами между объектами

var oneWay = Object.create(bagOfMethods);
// some value of extend that is sensible
var otherWay = extend({}, bagOfMethods);

Единственное реальное преимущество прототипов заключается в том, что связь между oneWay и bagOfMethods является действующим.

Наличие действующей ссылки позволяет создавать действительно мощные расширения и патчить обезьяны.

Примером является Object.prototype.methodNowLivesOnAllInstances = function () { };

Это способ сделать «асинхронный»программируя, вы можете расширить «класс», не беспокоясь, получат ли все экземпляры новый метод.

Примечание к модульному шаблону, оно раздутое и не нужно.Вместо этого используйте построитель модулей, например, modul8 или browserify.

1 голос
/ 19 января 2012

Ну, если вы ссылаетесь на этот вопрос, принятый ответ на который начинается с того, что он называется оптимизация , тогда я бы сказал, что не стоит преждевременная оптимизация . Вы никогда не сможете воспользоваться какими-либо преимуществами (см .: YAGNI ), и вы усложняете свою работу, поскольку вы сами (и ваша команда?) Предпочитаете шаблон модуля.

...