当你在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()
不起作用。为什么我把它链接起来呢?
答案 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