【问题标题】:Javascript functions with their own methods带有自己方法的 Javascript 函数
【发布时间】:2016-11-29 11:35:02
【问题描述】:

我对能够在 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 框架,它似乎大量使用了这个概念。重点是什么?这就是顶级函数的意思吗?

【问题讨论】:

  • 感谢您的回复,但是我已经了解函数和方法之间的区别。我认为我的困惑源于相同的原理,即正方形在技术上是矩形,但矩形不一定是正方形。对于 JavaScript,函数是对象,但对象不一定是函数。不同之处在于可以调用函数对象。这个功能有什么意义?有哪些用例?

标签: javascript


【解决方案1】:

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

var express = require('express');

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

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

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

【讨论】:

    猜你喜欢
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2011-01-31
    • 2012-12-15
    • 2021-10-08
    • 2012-06-11
    相关资源
    最近更新 更多