Je suis en train de me tromper avec un modèle javascript qui va me permettre d'espace de noms mon code et de définir des raccourcis en interne hors de la portée globale pour réduire la quantité de frappe que je vais devoir faire . Des choses comme $ au lieu de jQuery ou $ messageType au lieu de messages.messageType.javascript design pattern ne retourne pas intellisense pour certains objets
Alors que le modèle semble fonctionner bien que j'ai perdu certaines fonctionnalités IntelliSense maintenant en studio visuel 2010.
par exemple Ma fonction de test ci-dessous va alerter "succès" mais mon intellisense n'énumère pas à travers les propriétés de l'objet $ messageType.
Puisque la productivité est la clé, c'est un gros problème pour moi.
Y at-il quelque chose que j'ai raté que les gourous javascript peuvent prendre?
Voici un jsfiddle à jouer avec.
; (function (window) {
// Define a local copy of myObject
var myObject = function() {
// The myObject object is actually just the init constructor 'enhanced'
return new myObject.fn.init();
},
// Shortcuts.
// A central reference to the root messages object
$messages = null,
// A central reference to the root messages.messageType object
$messageType = null;
myObject.fn = myObject.prototype = {
init: function() {
// Initialise the object shortcuts.
$messages = this.messages;
$messageType = this.messages.messageType;
}
};
// Give the init function the myObject prototype for later instantiation
myObject.fn.init.prototype = myObject.fn;
myObject.fn.messages = {
/// <summary>
/// Provides means to provide feedback message to the client.
/// </summary>
messageType: {
information: "information",
error: "error",
success: "success"
}
};
myObject.fn.tester = function() {
alert($messageType.success);
};
// Expose myObject to the global object
window.myObject = window.$m = myObject();
} (window));
jQuery(document).ready(function() {
$m.tester();
});