В настоящее время я пытаюсь перенести существующий API-интерфейс JavaScript на стороне сервера из существующей системы наследования с копированием и вставкой вручную в лучшую и более надежную систему. Чистое прототипирование нельзя использовать, потому что состояние (переменные) объектов также должно наследоваться и не должно переопределяться в родительских объектах.
Поэтому я думаю об использовании хорошего решения Джона Рейзига, описанного здесь: http://ejohn.org/blog/simple-javascript-inheritance/
которые отлично подходят для моего случая.
Единственная проблема, с которой я сталкиваюсь сейчас, заключается в том, что большинство фреймворков документации не будут обрабатывать объекты, построенные таким образом (ИЛИ я просто не знаю, как им сказать). Итак, мой вопрос: как я могу документировать такие классы:
namespace.ClassA = Class.extend({
name : "",
init: function(name){
this.name = name;
}
});
namespace.ClassB = ClassA.extend({
sayName : function(){
console.log(this.name);
}
});
Я предпочитаю JsDoc, но я не мог придумать способ документировать такие классы с помощью JsDoc. Я также пробовал NaturalDocs, который вроде бы работал, но я действительно не хочу, чтобы весь этот дополнительный материал Python был в процессе сборки.
Я думаю, что основные проблемы, которые у меня есть, связаны с пространствами имен.
Например:
/** @memberof namespace**/
namespace.ClassB = ClassA.extend(
/** @lends ClassB.prototype **/
{
/** @constructs **/
init : function(){
},
sayName : function(){
console.log(this.name);
}
});
не будет включать или отображать ClassB в пространстве имен "пространство имен"
@
). Чтобы помочь нам дать ответ, который попадет в цель, было бы полезно, если бы вы могли показать нам, что вы пробовали и почему это вас не удовлетворяет. В противном случае очень легко дать ответ, который что-то даст, только для того, чтобы вы ответили, что это не то, что вы хотите, и т. д. - person Louis   schedule 07.03.2014