2011-12-26 14 views
6

He estado desarrollando un complemento para jQuery "jQueryLog" para permitir la depuración de los selectores de cadena y los valores devueltos. Si desea verificarlo, puede hacerlo hereMejores prácticas de Javascript, ¿por qué usar la coma para declarar la función de cadena/variable?

Esto ya es una segunda versión. La primera versión era en realidad un jQuery editado y mientras lo hacía tenía que leer jQuery para entender cómo funcionaban los internos. La pregunta viene de ahí:

var jQuery = function(selector, context) { 
     // The jQuery object is actually just the init constructor 'enhanced' 
     return new jQuery.fn.init(selector, context, rootjQuery); 
    }, 

    // Map over jQuery in case of overwrite 
    _jQuery = window.jQuery, 

    // Map over the $ in case of overwrite 
    _$ = window.$, 

    // A central reference to the root jQuery(document) 
    rootjQuery, 

    // A simple way to check for HTML strings or ID strings 
    // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) 
    quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, 
    (...) 

¿Hay alguna razón importante para el uso de una cadena de declaraciones + "coma" en lugar de usar:

function jQuery (selector, context) { ... } 

var _jQuery = window.jQuery; 
var _$ = window.$; 
etc... 

La única razón que veo aquí es para el minificador para tener menos literales que no se pueden cortar. ¿Pero hay alguna otra razón?

+1

Lea este [link] (http://stackoverflow.com/questions/3781406/javascript-variable-definition-commas-vs-semicolons) –

+2

No sé que el uso de comas más de 'var' tiene siempre sido declarada una "mejor práctica" de la industria. En el mejor de los casos, esta es una preferencia estilística. Sin embargo, me interesaría leer cualquier artículo que pudieras proporcionar que defendiera esto como una mejor práctica. –

+0

@Ronak ¿por qué no dice simplemente que es una pregunta duplicada? – kojiro

Respuesta

5

Es solo una manera más corta de mantener todas las variables en el alcance de la función mientras se asegura de que no se utilicen antes de que se definan.

En JavaScript Patterns (Septiembre de 2010, O'Reilly), Stoyan Stefanov lo llama el patrón sola var:

JavaScript le permite tener varias instrucciones var en cualquier lugar de una función , y todos actúan como si las variables se declararan en la parte superior de la función . Este comportamiento se conoce como elevación. ... Utiliza una sentencia var y declara múltiples variables delimitadas por comas. Es una buena práctica inicializar también la variable con un valor inicial de en el momento en que la declara. Esto puede evitar errores lógicos (todos sin inicializar y las variables declaradas se inicializan con el valor undefined) y también mejora la legibilidad del código.

Cuestiones relacionadas