【问题标题】:What do you call an object with function(s) in it你怎么称呼一个包含函数的对象
【发布时间】:2015-10-15 20:44:00
【问题描述】:

你怎么称呼一个包含函数的对象。我正在记录一些使用 jsdoc 返回此内容的函数,但我无法坚持使用一种传达此内容的方式。

这就是我要返回的东西

{fnName: [function]}

{fnNameA: [function], fnNameB: [function]}

我以这种方式记录返回值的问题是传达不要期望属性作为文字 object.fnName 和变量函数名称。

如何在 jsdocs 中表示这一点?以上是标准吗?

作为程序员,我们如何称呼这种变量?

  • 值是函数的对象
  • 具有功能的对象
  • 具有函数属性的对象
  • 带有方法的对象
  • 具有命名函数属性的对象

有没有一个词可以表达这一点?

【问题讨论】:

  • 我能想到的最好、最简洁的词是“API”,但这当然仍然是通用的。
  • @light:API 只有当它是一个编程接口时才真正适用,并且有点暴露给代码消费者。
  • 如果它是您正在构建的库(导出函数集合的对象),我认为这可以作为 API。但实际上,我认为没有任何技术词可以描述 OP 的要求。描述这样一个对象的词或多或少与应用程序的上下文有关。
  • 巴尔萨扎...或艾伦

标签: javascript function object jsdoc


【解决方案1】:

我从未见过“只有以函数作为值的属性的对象”的特殊区别。

我会使用:“带有属性的对象”或者“带有方法的对象”(因为我来自强类型世界)。

如果结果通常用作另一个函数的参数 - “选项对象”(如 options JavaScript pattern 中)。

【讨论】:

    【解决方案2】:

    正确的编程答案是带有方法的对象。这是因为属性的值是一个函数,无论是否命名。但应该理解,方法只是一个属性,即一个函数。我们区分它们的原因是与它们正确交互需要稍微不同的签名,从而导致调用。但是,应该注意的是,根据使用情况和可访问性,其他条款可能适用。例如,如果对象要被代码消费者使用,API 也可能适用。

    重要说明:

    如果函数有名称(属性名称不是函数名称),它们只是命名函数。例如,下面将是一个命名函数:

    {
        prop1: function myFn() {
        }
    }
    

    【讨论】:

    • 感谢您的澄清部分。这是一个很大的区别。
    • 为了简洁起见,我们可以称它为Method Object 吗?这会被广泛理解吗?
    • 没有。没有这样的东西...方法是对象的属性...因此尝试创建这样的区别是没有意义的,特别是如果您尝试将其用于文档时。简单的 Object...,它有以下方法:a、b 和 c。
    • 也就是说,没有这种区别的唯一原因是因为在 JavaScript 中,你的属性可能会随心所欲地改变它们的类型......因为没有硬类型,所以每个代码模式本质上都是一个约定。
    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    相关资源
    最近更新 更多