2013-05-04 12 views
5

http://www.google.com kaynağından javascript dosyasını merak ediyordum. Sık sık yaptığımı ve orada neler yaptığını anlamaya çalışıyorum. bugün dosyaların içinde merak ediyordum ve bazı garip fonksiyon çağrıları buldum. Belki de aptalca bir şey ama ne olduğunu hiç bilmiyorum ve bu yüzden onu arayarak yardım edemedim. Javascript: bu sözdizimi ne anlama geliyor? (0, functionName) (functionParemeter);

okunabilir

benim bilgi eksikliği bağışlayın Kodunuzu

var someFunction = function(somaeParamenter){ 
    //do some stuffs; 
    return something; 
} 

var someOtherThing = (0, someFunction)(oneParameter); 

ait benzerler.

DÜZENLEME:

Source- i krom kullanıyorum

. , http://www.google.com sayfa açıkken, geliştirici aracını açtım. Sonra kaynak sekmesini açtım ve görüntüleyicide https://www.google.com.bd/xjs/_/js/s/c,sb,cr,cdos,vm,tbui,mb,wobnm,cfm,abd,bihu,kp,lu,m,tnv,amcl,erh,hv,lc,ob,r,rsn,sf,sfa,shb,srl,tbpr,hsm,j,p,pcc,csi/rt=j/ver=WUW4ydIf-wI.en_US./am=gA/d=1/sv=1/rs=AItRSTPu52CumknQsh0was81vrM4inla_w dosyasını açtım. Bu dosya orada gördüğüm tek js dosyası. Ben "oldukça print" etkin ve hat 58'de Eğer defination-

_.Va = function(a) { 
      var b = typeof a; 
      if ("object" == b) 
       if (a) { 
        if (a instanceof window.Array) 
         return "array"; 
        if (a instanceof window.Object) 
         return b; 
        var c = window.Object.prototype.toString.call(a); 
        if ("[object Window]" == c) 
         return "object"; 
        if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) 
         return "array"; 
        if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) 
         return "function" 
       } else 
        return "null"; 
      else if ("function" == b && "undefined" == typeof a.call) 
       return "object"; 
      return b 
     }; 

bulacaksınız ve hat 83 size işlev denir göreceksiniz.

_.Za = function(a) { 
      return "array" == (0, _.Va)(a) 
     }; 
+1

Tam kaynağı söyleyebilir misiniz, lütfen? Http: // www.google.com/' – Bergi

+1

adresinden teslim aldığımda bulamıyorum. Yan not: Google'ın JS'si büyük ölçüde optimize edilmiş ve minimize edilmiştir. Bu nedenle, muhtemelen etkilenecek en iyi yer değil. – JJJ

+0

@Juhana haklısın ama oraya bakmaktan kendime dayanamıyorum :) – maksbd19

cevap

7
(0, someFunction) 

basitçe bu nedenle bu

var someOtherThing = someFunction(oneParameter); 

bunu olduğu gibi tam olarak yazdığınızdan emin sadece eşdeğerdir someFunction

döndürür? Eğer öyleyse, ve eğer bir çeşit sapkınlık olmasaydı, o zaman bu, bazı minifikasyonların talihsiz sonucu olabilirdi. Gerçek kod biraz farklıysa, örneğin (0, someObject.someFunction), bu indirect function call'un bir kısmı olabilir.

DÜZENLEME:

Sen düzenlemek hedefi işlevi içinde, Va bağlıydı hangi (bir tarayıcıda window) küresel nesne değil nesne (_) 'dir, yani this sağlamak için muhtemelen bunun teyit .

+0

"0" yerine, muhtemelen bir ödev veya işlev çağrısı veya başka bir ifadesi vardı. – Zirak

+0

'(Patates, sanırım), dikkat çekiciliğinin bir sonucudur. – Doorknob

+0

(Parentez ve virgüller) açıkça (gizleme kodu) ... –