成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

node函數(shù)使用

番茄西紅柿 / 2421人閱讀

摘要:在中,一個函數(shù)可以作為另一個函數(shù)的參數(shù)。我們可以先定義一個函數(shù),然后傳遞,也可以在傳遞參數(shù)的地方直接定義函數(shù)。中函數(shù)的使用與類似。以上代碼中,我們把函數(shù)作為函數(shù)的第一個變量進(jìn)行了傳遞。

在JavaScript中,一個函數(shù)可以作為另一個函數(shù)的參數(shù)。我們可以先定義一個函數(shù),然后傳遞,也可以在傳遞參數(shù)的地方直接定義函數(shù)。

Node.js中函數(shù)的使用與Javascript類似。


function say(word) {
        console.log(word);
    }
    function execute(someFunction, value) {
        someFunction(value);
    }
    execute(say, "Hello");

以上代碼中,我們把 say 函數(shù)作為execute函數(shù)的第一個變量進(jìn)行了傳遞。這里傳遞的不是 say 的返回值,而是 say 本身!
這樣一來, say 就變成了execute 中的本地變量 someFunction ,execute可以通過調(diào)用 someFunction() (帶括號的形式)來使用 say 函數(shù)。
當(dāng)然,因為 say 有一個變量, execute 在調(diào)用 someFunction 時可以傳遞這樣一個變量。

node.js函數(shù)

1.不帶參的函數(shù)

    

function sayhello(){
            console.log("Hello World");
        }
        sayhello()
        //運(yùn)行結(jié)果  Hello World
    
2.帶參的函數(shù)

    

function sayyouwrite(youwrite){
            console.log(youwrite);
        }
        sayyouwrite("你好")
        //運(yùn)行結(jié)果  你好
    
3.多個參數(shù)函數(shù)

    

function sayyouwrite2(youwrite1,youwrite2,youwrite3){
            console.log(youwrite1+youwrite2+youwrite3);
            console.log(youwrite1);
            console.log(youwrite2);
            console.log(youwrite3);
        }
        sayyouwrite("你好")
        // 運(yùn)行結(jié)果
        // 你好!世界!中國!
        // 你好!
        // 世界!
        // 中國!
    
4.匿名函數(shù)

    

function execute(someFunc, value) {
            someFunc(value)
        }
         
        execute(function (world) {
            console.log(world)
        }, "Hello world")

函數(shù)的調(diào)用

1.js文件內(nèi)部函數(shù)調(diào)用

    

var http = require("http")
        http.createServer(function (request, response) {
            // 發(fā)送 HTTP 頭部
            // HTTP 狀態(tài)值: 200 : OK
            // 內(nèi)容類型: text/plain
            response.writeHead(200, {"Content-Type": "text/html;charset=utf-8"});
            if(request.url="/favicon.ico"){
                fun1(response);
                response.end("")
            }
        }).listen(8888);
        
        function fun1(res) {
            console.log("我是fun1")
            res.write("你好,我是fun1|")
        }
        // 終端打印如下信息
        console.log("Server running at http://127.0.0.1:8888/");
    

2.調(diào)用其他js文件內(nèi)的函數(shù)

    

var http = require("http")
        var fun2 = require("./m2.js")
        http.createServer(function (request, response) {
            // 發(fā)送 HTTP 頭部
            // HTTP 狀態(tài)值: 200 : OK
            // 內(nèi)容類型: text/plain
            response.writeHead(200, {"Content-Type": "text/html;charset=utf-8"});
            if(request.url="/favicon.ico"){
                fun1(response);
                fun2(response);
                response.end("")
            }
        }).listen(8888);
        function fun1(res) {
            console.log("我是fun1")
            res.write("你好,我是fun1|")
        }
        // 終端打印如下信息
        console.log("Server running at http://127.0.0.1:8888/");
        m2.js:
        function fun2(res) {
            console.log("我是fun2")
            res.write("你好,我是fun2")
        }
        module.exports = fun2;//只能引用一個函數(shù)
    
3.調(diào)用其他js文件中多個函數(shù)
    

var http = require("http")
        var funx = require("./m2.js")
        http.createServer(function (request, response) {
            // 發(fā)送 HTTP 頭部
            // HTTP 狀態(tài)值: 200 : OK
            // 內(nèi)容類型: text/plain
            response.writeHead(200, {"Content-Type": "text/html;charset=utf-8"});
            if(request.url="/favicon.ico"){
                fun1(response);
                funx.fun2(response); // funx.fun2(response);
                funx.fun3(response);
                response.end("")
            }
        }).listen(8888);
        function fun1(res) {
            console.log("我是fun1")
            res.write("你好,我是fun1|")
        }
        // 終端打印如下信息
        console.log("Server running at http://127.0.0.1:8888/");
        m2.js
    
        module.exports ={
            fun2:function (res) {
                console.log("我是fun2")
                res.write("你好,我是fun2|")
            },
            fun3:function (res) {
                console.log("我是fun3")
                res.write("你好,我是fun3")
            }
        }
    

同時我們也可以將m1.js文件里面的

????????

funx.fun2(response);
        funx.fun3(response);

? ? 替換為

 ???????funx["fun2"](response);
        funx["fun3"](response);

? ? 或

    ??? fname2 = "fun2";
        fname3 = "fun3";
        funx[fname2](response);
        funx[fname3](response);

函數(shù)傳遞是如何讓HTTP服務(wù)器工作的


var http = require("http");
    http.createServer(function(request, response) {
        response.writeHead(200, {"Content-Type": "text/plain"});
        response.write("Hello World");
        response.end();
    }).listen(8888);
    
    等同于
    
    var http = require("http");
    function onRequest(request, response) {
      response.writeHead(200, {"Content-Type": "text/plain"});
      response.write("Hello World");
      response.end();
}
    http.createServer(onRequest).listen(8888);

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/104830.html

相關(guān)文章

  • BlockingQueue與Condition原理解析

    摘要:最后一直調(diào)用函數(shù)判斷節(jié)點是否被轉(zhuǎn)移到隊列上,也就是中等待獲取鎖的隊列。這樣的話,函數(shù)中調(diào)用函數(shù)就會返回,導(dǎo)致函數(shù)進(jìn)入最后一步重新獲取鎖的狀態(tài)。函數(shù)其實就做了一件事情,就是不斷嘗試調(diào)用函數(shù),將隊首的一個節(jié)點轉(zhuǎn)移到隊列中,直到轉(zhuǎn)移成功。 ?我在前段時間寫了一篇關(guān)于AQS源碼解析的文章AbstractQueuedSynchronizer超詳細(xì)原理解析,在文章里邊我說JUC包中的大部分多線程相...

    TalkingData 評論0 收藏0
  • Node.js 中引入模塊:你所需要知道的一切都在這里

    摘要:全局范圍生效,不需要。解析本地路徑首先來為你介紹對象,可以先在控制臺中看一下每一個模塊都有屬性來唯一標(biāo)示它。通常是文件的完整路徑,但是在控制臺中一般顯示成。 showImg(https://segmentfault.com/img/remote/1460000009060869?w=1794&h=648); 本文作者:Jacob Beltran 編譯:胡子大哈 翻譯原文:http:...

    aristark 評論0 收藏0
  • [譯]你并不知道Node

    摘要:問題什么是調(diào)用棧并且它是的一部分么調(diào)用棧當(dāng)然是的一部分。為什么理解是重要的因為你在每個進(jìn)程中只能獲取一個調(diào)用棧。它是一個從事件隊列中跳去事件的循環(huán)并且將它們的回調(diào)壓入到調(diào)用棧中。當(dāng)調(diào)用棧為空的時候,事件循環(huán)可以決定下一步執(zhí)行哪一個。 你并不知道Node 原文:You don’t know Node 譯者:neal1991 welcome to star my articles-tra...

    miqt 評論0 收藏0
  • 什么是Node.js

    Node.js從2009年誕生至今,已經(jīng)發(fā)展了兩年有余,其成長的速度有目共睹。從在github的訪問量超過Rails,到去年底Node.jsS創(chuàng)始人Ryan Dalh加盟Joyent獲得企業(yè)資助,再到今年發(fā)布Windows移植版本,Node.js的前景獲得了技術(shù)社區(qū)的肯定。InfoQ一直在關(guān)注Node.js的發(fā)展,在今年的兩次Qcon大會(北京站和杭州站)都有專門的講座。為了更好地促進(jìn)Node.j...

    CrazyCodes 評論0 收藏0
  • Express 實戰(zhàn)(一):概覽

    摘要:一個標(biāo)準(zhǔn)性的事件就是年的橫空出世。引擎快速處理能力和異步編程風(fēng)格,讓開發(fā)者從多線程中解脫了出來。其次,通過異步編程范式將其高并發(fā)的能力發(fā)揮的淋漓盡致。它也僅僅是一個處理請求并作出響應(yīng)的函數(shù),并無任何特殊之處。 showImg(https://segmentfault.com/img/remote/1460000010819116); 在正式學(xué)習(xí) Express 內(nèi)容之前,我們有必要從大...

    zhaochunqi 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<