2011-12-26 20 views
6

JQuery "jQueryLog" için zincir seçicilerinin hata ayıklamasına ve dönüş değerlerine izin vermek için bir eklenti geliştiriyorum. Bunu kontrol etmek isterseniz, bunu hereJavascript en iyi uygulamaları, neden zincir işlevi/değişken bildirimleri için virgül kullanmak için?

yapabilirsiniz. Bu zaten ikinci bir sürümüdür. İlk sürüm aslında düzenlenmiş bir jQuery idi ve bunu yaparken internals nasıl çalıştığını anlamak için jQuery okumak zorunda kaldı. soru geliyor: için herhangi bir büyük nedeni

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\-]*)$)/, 
    (...) 

var mı bildirimleri + "virgül" zinciri kullanılarak yerine sadece kullanılarak:

Burada gördüğüm tek nedeni içindir
function jQuery (selector, context) { ... } 

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

küçültücü, kesilemeyen daha az hazırlığa sahip olmak için. Ama başka nedenler var mı?

+1

(http://stackoverflow.com/questions/3781406/javascript-variable-definition-commas-vs-semicolons) –

+2

Ben 'var' üzerinde virgül kullanarak hiç sahip olduğunu bilmiyorum bu [link] Oku bir endüstri 'en iyi uygulama' ilan edildi. En iyisi, bu stilistik bir tercihtir. Bununla birlikte, bunu en iyi uygulama olarak savunan herhangi bir makaleyi okumakla ilgilenirim. –

+0

@Ronak neden sadece yinelenen bir soru değil mi? – kojiro

cevap

5

Tanımlanmadan önce kullanılmadıklarından emin olarak, tüm değişkenleri işlev kapsamı içinde tutmak daha kısa bir yoldur.

JavaScript Patterns (Eylül 2010 O'Reilly) yılında Stoyan Stefanov tek var desen diyor:

JavaScript işlevinde herhangi bir yerinde birden var ifadeleri olmasını sağlar ve Hepsi, değişkenlerin işlevinin üst kısmında bildirilmiş gibi davranır. Bu davranış kaldırma olarak bilinir. ... bir var deyim kullanır ve virgüllerle ayrılmış birden çok değişken bildirirsiniz. Aynı zamanda, bildirimi bildirdiğiniz anda, ilk değeriyle de ilklendirmek iyi bir uygulamadır. Bu, mantıksal hataları önleyebilir (tüm başlatılmamış ve bildirilen değişkenler undefined değeriyle başlatılır) ve ayrıca kod okunabilirliğini de geliştirebilir.

İlgili konular