Modelo Javascript para Bibliotecas

Introdução

Ultimamente tenho lutado tentando explicar Javascript para iniciantes, especialmente para pessoas que vêm da linguagem OOP e têm problemas para entender a linguagem. Como resultado, criei um modelo simples para eles começarem a hackear. Como um bônus, também adicionei o básico para YuiDocs e como usá-lo.

Aqui está o modelo simplificado. Eu iria verificar a essência, pois parece que o realce de sintaxe funciona bem, além disso, adicionei algumas explicações lá.

/**
* A simple template for native Javascript modules and classes with documentation

* @module Template

* @author jjperezaguinaga

* @copyright (c) 2012 Company Inc.

* @requires NoLibrary

**/


window
.Template = (function( t, undefined ) {

/**
* My awesome class that does funky things.

* @class AwesomeClass

* @constructor

* @chainable

**/

t
.AwesomeClass = function() {
var self = {};

/**
* My awesome property. Stick to a code standard - under_score or camelCase!

* @property awesomeProperty

* @type = {String}

* @default ""

**/

self.awesomeProperty = "";

/**
* My awesome private property. Closures! Your object has scope on this variable.

* @property id

* @type = {Number}

* @default 0

* @private

*

**/

var id = 0;

/**
* "Constructor" of the class. Don't confuse with the at-constructor block

* @method init

* @param {String} awesome The initial value of our awesome property

* @param {Number} id Our value id!

**/

self.init = function(awesome, id) {
self.awesome = awesome;
id
= id;
return self;
}

return self.init();
}

return t;
})(window.Template || {});

Aqui está a essência , fique à vontade para pegá-la / garfo / comentar. Também criei um projeto Github para mostrar menos a forma como o utilizo. Na prática, porém, geralmente tenho um módulo extra que gerencia todas as dependências.