使用点运算符function

我刚刚开始学习javascriptnodejs通过遵循一个教程。 他们使用的代码之一是:

 var express=require('express'); var app=express(); app.listen(3000); 

现在当我这样做时:

 console.log(typeof app); console.log(typeof app.listen); 

我得到:

 function function 

作为输出。 现在,如果types的typeof appfunction ,那么我们如何使用. 运营商与它访问一些其他function( listen )? 我试图阅读express模块,但不能理解太多。

任何人都可以给我们一个简单的例子,我们使用一个function名称. 运营商能够访问其中的一些其他function吗?

我试过这个:

 var t=function(){ t.bar=function(){ console.log('bar'); } }; t.bar(); 

但不行。

函数是对象,它们可以像任何其他对象一样具有属性。

 var t = function() { console.log('foo'); }; t.bar = function() { console.log('bar'); }; t.bar(); t.favColor = 'red'; t.shoeSize = 12; 

在Javascript中, function是对象。 这是你如何定义一个对象:

 var myObject = {/*Some members*/}; 

这是你如何定义一个function

 var myFunction = function(/*Some parameters*/) {/*Do something*/}; typeof myObject 

会导致"object"

 typeof myFunction 

将导致"function"

它们之间的区别是myFunction可以被调用,而myObject不能被调用。 比如说这个

 ({})() 

将导致错误。 但是,否则他们是非常相似的,他们可以有同样的方式的成员。

 myFunction.myInnerFunction = function(/*Some other parameters*/) {/*Do something else*/}; 

myFunctionmyInnerFunction成员分配恰好是function 。 从那里你将能够调用myFunction.myInnerFunction 。 但是,您需要阅读更多有关function的信息,您可以使用此关键字开始学习。

你的问题是关于语言的基础。

有很多解决scheme。

这取决于你想达到什么。

这里有几个例子:

 const t = () => {}; t.bar = () => { console.log('bar'); }; t.bar(); 

要么:

 const t = { bar: () => { console.log('bar'); } }; t.bar(); 

要么:

 class t { static bar() { console.log('bar'); } } t.bar(); 

要么:

 class T { static bar() { console.log('bar'); } } const t = new T(); t.bar(); 

并修正你的例子(和上面的例子一样):

 var t = function {}; t.bar = function() { console.log('bar'); }; t.bar();