Javascript函数有自己的方法

时间:2016-07-26 00:33:49

标签: javascript

我对于能够在JavaScript中进行方法调用的函数的目的或用例感到困惑。我知道函数被认为是对象,因此可以有自己的属性,因此也有函数,但在我看来它仍然有点像我称之为标准对象。例如,为什么我会这样做......

var myFunction = function(){...};
myFunction.method = function(){...};

而不是创建一个对象并具有一个或多个功能属性,如下所示......

var obj = {method: function(){}};

如果我们是console.log,我们会得到以下内容......

console.log(myFunction);
console.log(obj);
------------------------------------------
{ [Function] secondFunction: [Function] }
{ method: [Function] }

我正在尝试学习当前的Express.js框架,似乎它大量使用了这个概念。有什么意义?这是顶级功能的意思吗?

1 个答案:

答案 0 :(得分:4)

在express的情况下,这使得顶级API可以调用并访问模块的其他内容。

var express = require('express');

var app = express();
app.use(express.static('/root'));

var router = express.Router(); // etc...

如果模块的主要导出是某种类型的“构造函数”,那么这很常见,并且作者还希望通过附加到同一个顶级导出来公开其他内容。