2016-10-24 20 views
0

我已得到互聯網的樣本代碼如何在NODE js函數中傳遞參數?

const net = require('net'); 
var server = net.createServer(function(socket) { 
    socket.end('goodbye\n'); 
}).on('error', function(err) { 
    // handle errors here 
    throw err; 
}); 
// grab a random port. 
server.listen(function() { 
    address = server.address(); 
    console.log('opened server on %j', address); 
}); 

在這裏有一段代碼,如函數(插座),插座是如何定義的,這個功能是如何工作的。任何人都可以解釋它。

+2

這是一個由net.createServer函數調用的回調函數,該函數將套接字作爲第一個參數傳遞給此回調函數 –

+0

類似於'net.createServer = function(callback){var socket =/* create socket * /;回調(插座); };'。讓我們簡化一下:如果你有一個函數'function foo(bar){}',調用和傳遞參數是如何工作的?就像那樣:'foo(42)'。 'bar'的值是'42'。要了解更多關於函數的信息,請查看http://eloquentjavascript.net/03_functions.html。 –

回答

1

現在有,在JS您可以分配匿名函數變量就像這樣:

var sum = function(a, b) { return a + b; }; 

您可以調用

var first_argument = 1 
var second_argument = 3 
var result = sum(first_argument, second_argument) 

但是,如果你可以傳遞變量函數,並分配功能變量。你可以將函數傳遞給函數嗎?

var binary_op = function(a, b, op) { 
    return op(a, b); 
} 
binary_op(1, 2, sum); 

嗯,當然可以。事實上,你可以做

binary_op(1, 2, function(a, b) { return a - b; }); 

這將使binary_op調用這個匿名函數並最終返​​回-1。