'Javascript: The Good Parts' предоставляет этот пример в отношении «шаблона вызова конструктора» (стр. 29-30).

var Quo = function (string) { 
    this.status = string;
};

Quo.prototype.get_status = function() { 
    return this.status;
};

var myQuo = new Quo("confused");

document.writeln(myQuo.get_status()); // returns confused

Раздел заканчивается на "Use of this style of constructor functions is not recommended. We will see better alternatives in the next chapter."

Какой смысл в примере и сильная рекомендация против использования этого паттерна?

Спасибо.

0
Kevin Meredith 21 Янв 2013 в 23:31

2 ответа

Лучший ответ

Раздел заканчивается:

Использование этого стиля функций конструктора не рекомендуется. Мы увидим лучшие альтернативы в следующей главе.

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

Так что, просто иди и делай это.

3
Lightness Races in Orbit 21 Янв 2013 в 19:35

Не принимайте Крокфорда слишком всерьез. У него есть привычка проецировать свои собственные стилистические чувства как объективные факты.

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

Мой совет - изучить все способы сделать это и использовать лучшую структуру для работы. Не увлекайтесь тем, что рекомендует Крокфорд, пока не поймете почему .

1
Alex Wayne 21 Янв 2013 в 19:36