2015-12-05 17 views
5

Bu soru başlığını nasıl arayacağımı/çerçeveleyeceğimi bilmiyorum, ancak aşağıdaki kodun ne yaptığını bana açıklayan herkes var mı?function()() javascript içinde

var routes = require("./routes/routes.js")(app); 

Ben app geçirilen bir second() görüyorum, bu ne işe yarıyor? https://github.com/couchbaselabs/restful-angularjs-nodejs/blob/master/app.js

Sürprizime göre, yukarıdaki kodda değişken yolların üstünde uygulama.js'de hiç kullanılmıyor mu? Amaç nedir. Burada kafam karıştı mı? (app) argument Burada büyü var mı?

+2

(1) routes.js dosyası bir işlevi dışa aktarır, böylece hemen çağrılır ve sonuç 'route'larda depolanır. (2) Bu çağrıda, 'app' yönlendiriciye iletilir, bu yüzden uygulama aslında yönlendiriciden faydalanır, sadece 'route' değişkenini kullanmaz. –

+0

@HunanRostomyan: app.use ("/", gerektirir ("./ rotalar")); bu kod yukarıdaki kodla eşdeğer midir? – ShankarGuru

+0

Bu işe yarayabilir. Emin değilim. Bir şans ver. –

cevap

6

yapı

foo()(); 

foo() bir işlev döner ve hemen çağırır beklemektedir. Daha okunabilir eşdeğerdir: Gördüğünüz sık edeceğiz

var func = foo(); 
func(); 

Benzer bir yapıdır:

(function() { 
    // function definition 
})(args); 

Bu bir işlevi tanımlar ve hemen çağırır. Birincil kullanım, değişkenler için blok kapsamını taklit etmektir.

+0

Sadece foo() (arg) ile ilgili basit bir örnek ile küçük bir keman yapabilir misiniz? – ShankarGuru

İlgili konular