使用点运算符function
我刚刚开始学习javascript
和nodejs
通过遵循一个教程。 他们使用的代码之一是:
var express=require('express'); var app=express(); app.listen(3000);
现在当我这样做时:
console.log(typeof app); console.log(typeof app.listen);
我得到:
function function
作为输出。 现在,如果types的typeof app
是function
,那么我们如何使用.
运营商与它访问一些其他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*/};
为myFunction
的myInnerFunction
成员分配恰好是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();