NODEJS中的Javascript方法链接

时间:2016-11-07 04:03:42

标签: javascript node.js

当你在javascript中链接一个方法时,是否会在初始对象上调用它?或者前一个方法的返回对象?

我问这个是因为在节点我正在链接.listen()

有效:

var http = require("http");

http.createServer(function (request, response) {
   response.writeHead(200, {
     'Content-Type': 'text/plain'
   });
   response.end('Hello World\n');
}).listen(8088);

// Console will print the message
console.log('Server running at http://127.0.0.1:8081/');

listen()之后调用createServer时,它无效:

http.createServer(function (request, response) {
   response.writeHead(200, {
     'Content-Type': 'text/plain'
   });
   response.end('Hello World\n');
})

http.listen(8088);

它说listen()不起作用。为什么我把它链接起来呢?

3 个答案:

答案 0 :(得分:2)

因为http是与createServer创建的http.Server实例不同的模块。请参阅文档here并尝试console.log()变量以查看在其上定义了哪些函数和属性。

答案 1 :(得分:0)

Fluent接口通过返回您调用的同一对象(通过使用return this结束方法)来工作,这样您就可以对该对象进行链接调用(因此,使其“流畅”)。

https://en.wikipedia.org/wiki/Fluent_interface

在您的情况下,它不是方法链接的问题。 调用http.createServer会返回一个不同于http的新对象,您可以将其称为侦听。

答案 2 :(得分:0)

这是因为 createServer 会返回 http.Server 的新实例。

Class: http.Server

此类继承自 net.Server ,并且具有事件' listen' More information