2012-12-31 54 views
1

我剛開始深入研究Node.JS和擴展JavaScript,並且當參數可能是對象或函數時,我有一段時間閱讀代碼。我目前使用IntelliJ的IDEA作爲我的IDE,那麼在IDEA中有沒有辦法獨立編輯對象參數和函數參數的顏色/字體?有沒有在IntelliJ中以不同的方式格式化JavaScript對象和函數參數的方法?

編輯:追加例題

我通過節點初級預訂截止Manuael基斯林(http://www.nodebeginner.org)工作我的方式,所以這些例子都是直接從那裏。

在index.js有一個對象變量handle充當的URL路徑的關聯數組函數名,使得handlepathname成爲對象。

var server = require("./server"); 
var router = require("./router"); 
var requestHandlers = require("./requestHandler"); 

var handle = {}; 
handle['/'] = requestHandlers.start; 
handle['/start'] = requestHandlers.start; 
handle['/upload'] = requestHandlers.upload; 

server.start(router.route, handle); 

在router.js有一個函數route,供應給具有有效路徑各自的功能和無效的路徑名的信息404

function route(handle, pathname, response) { 
    console.log("About to route a request for " + pathname); 
    if (typeof handle[pathname] === 'function') { 
     handle[pathname](response); 
    } else { 
     console.log("No request handler found for " + pathname); 
     response.writeHead(404, {"Content-Type": "text/plain"}); 
     respones.write("404 Not Found"); 
     response.end(); 
    } 
} 

exports.route = route; 

在server.js有直接處理是使用handle(ala對象)和route(ala函數)作爲啓動服務器的參數的函數start。 var http = require('http'); var url = require('url');

function start(route, handle) { 
    function onRequest(request, response) { 
     var pathname = url.parse(request.url).pathname; 
     console.log('Request for ' + pathname + ' received.') 

     route(handle, pathname, response) 
    } 

    http.createServer(onRequest).listen(8888); 
    console.log('Server has started.'); 
} 

exports.start = start; 

所以,對於start功能,將是不錯的route參數之間的一些視覺差異,這本身就是一個功能,並且handle,這簡直就是一個對象。

+0

你是什麼意思的「對象參數」?你能發表一個你想要着色的例子嗎? –

回答

0

所有JS函數都是對象,所以我不認爲這是可能的。

+0

通過這個定義,不是字符串和整數也是'對象'?顯然字符串和整數是特定類型的對象,但功能也是如此。如果我將'typeof()'作爲函數打印到控制檯,它將被識別爲'function'。同樣,從我的例子來看,如果我爲'handle'輸出'typeof()',它將作爲一個通用的'object'返回。 – Empish

+0

IntelliJ(以及我曾經處理過的其他所有IDE)在默認情況下提供了字符串和數字之間的視覺區別,爲什麼它不能提供函數參數和參數之間的區別那是一個通用的對象(或字符串,數字,或不是什麼)?我從來沒有見過一個IDE實現了對參數列表的視覺區分,但是大多數IDE都知道給定參數是什麼類型的對象,爲什麼他們不能被賦予不同的視覺特性? – Empish

+0

我不是專業的編碼員,所以也許我錯過了一些重要的區別。但作爲學習者,這種可視化將非常有用。 – Empish

相關問題