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.