为什么AMD以与javascript本质相反的顺序定义其可选参数?

健健

据我所知,许多javascript代码仍将IIFE用作其命名空间的一种模式,并且我相信javascript开发人员通常会习惯于某些东西,不要指望从中读取代码就可以看到所有内容。开始; 有时空括号,有时更多参数。

我读到的一部分require.js,并看到了其define实现中的其他参数调整

define=function (name, deps, callback) {
    var node, context;

    //Allow for anonymous modules
    if (typeof name!=='string') {
        //Adjust args appropriately
        callback=deps;
        deps=name;
        name=null;
    }

    //This module may not have dependencies
    if (!isArray(deps)) {
        callback=deps;
        deps=null;
    }

    // .. 

我想更好地理解为什么以这种方式定义它,并且在定义自己的API时应该遵循这种方式吗?

规格:AMD

太平

以随机或非常可选的顺序接受参数的函数只会给您一些语法糖这不一定是您应该追求的目标,但如果能解决的话,那就太好了。

我可以举一个参数不好的例子

JSON.stringify(data_obj, undefined, "\t");

您必须将undefined传递为替代函数(因为我没有替代函数,它是可选的)。当然,添加类似于您所发布的代码的东西很琐碎,该代码可以检查2nd和3rd参数的类型以将其减少为:

JSON.stringify(data_obj, "\t");

在Java(不是JavaScript)中,您具有多态函数,例如:

public function get(String string, List list) {}

public function get(List list) {}

根据调用的方式get,它将调用这些实现中的任何一个。实施这些时,您可能会看到类似以下内容的信息:

public function get(String string, List list) {
     /* actual implementation */
}

public function get(List list) {
    this->get("", list); // call get with default 1st argument
}

因此,实际上并没有那么多实质内容,只是语法糖

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么AMD按照JavaScript性质的相反顺序定义其可选参数?

来自分类Dev

为什么 argparse 不让我以任何顺序添加可选参数?

来自分类Dev

为什么不能使用string.Empty作为与空引号相反的可选参数?

来自分类Dev

为什么类型参数和数据参数的顺序大多相反?

来自分类Dev

为什么<$>和<*>以>> =相反的顺序接受输入?

来自分类Dev

为什么.NET Native编译顺序相反?

来自分类Dev

为什么“ OnActionExecuted”以相反的顺序执行?

来自分类Dev

为什么 equals() 中的顺序是相反的

来自分类Dev

为什么事件参数在Javascript的匿名函数中是可选的?

来自分类Dev

为什么输入参数在方法中是相反的?

来自分类Dev

<**>是<*>的变体,其参数相反。“反转”是什么意思?

来自分类Dev

在C中以相反顺序传递参数的意义是什么?

来自分类Dev

为什么libstdc ++以相反的顺序存储std :: tuple元素?

来自分类Dev

为什么在范围循环中延迟以相反的顺序调用?

来自分类Dev

为什么HttpURLConnection.getHeaderFields()以相反的顺序返回列表?

来自分类Dev

为什么堆栈迭代器以相反的顺序工作?

来自分类Dev

解释为什么 mongo 的结果以相反的 ObjectId 顺序返回?

来自分类Dev

为什么 Fread 以相反的顺序读取 unsigned-int?

来自分类Dev

为什么implode()可以以任何顺序接受其参数,而explode()不能。

来自分类Dev

C#可选参数:为什么要在接口和派生类上定义默认的不同?

来自分类Dev

为什么ObjectDataSource需要函数的可选参数?

来自分类Dev

以相反的顺序打印外壳参数

来自分类Dev

=〜函数参数以相反的顺序

来自分类Dev

以相反的顺序打印bash参数

来自分类Dev

带for循环的JavaScript的顺序式本质

来自分类Dev

为什么我的javascript参数未定义?

来自分类Dev

为什么lsqnonlin重塑其输入参数?

来自分类Dev

为什么lsqnonlin重塑其输入参数?

来自分类Dev

为什么平移是本质矩阵的零向量

Related 相关文章

  1. 1

    为什么AMD按照JavaScript性质的相反顺序定义其可选参数?

  2. 2

    为什么 argparse 不让我以任何顺序添加可选参数?

  3. 3

    为什么不能使用string.Empty作为与空引号相反的可选参数?

  4. 4

    为什么类型参数和数据参数的顺序大多相反?

  5. 5

    为什么<$>和<*>以>> =相反的顺序接受输入?

  6. 6

    为什么.NET Native编译顺序相反?

  7. 7

    为什么“ OnActionExecuted”以相反的顺序执行?

  8. 8

    为什么 equals() 中的顺序是相反的

  9. 9

    为什么事件参数在Javascript的匿名函数中是可选的?

  10. 10

    为什么输入参数在方法中是相反的?

  11. 11

    <**>是<*>的变体,其参数相反。“反转”是什么意思?

  12. 12

    在C中以相反顺序传递参数的意义是什么?

  13. 13

    为什么libstdc ++以相反的顺序存储std :: tuple元素?

  14. 14

    为什么在范围循环中延迟以相反的顺序调用?

  15. 15

    为什么HttpURLConnection.getHeaderFields()以相反的顺序返回列表?

  16. 16

    为什么堆栈迭代器以相反的顺序工作?

  17. 17

    解释为什么 mongo 的结果以相反的 ObjectId 顺序返回?

  18. 18

    为什么 Fread 以相反的顺序读取 unsigned-int?

  19. 19

    为什么implode()可以以任何顺序接受其参数,而explode()不能。

  20. 20

    C#可选参数:为什么要在接口和派生类上定义默认的不同?

  21. 21

    为什么ObjectDataSource需要函数的可选参数?

  22. 22

    以相反的顺序打印外壳参数

  23. 23

    =〜函数参数以相反的顺序

  24. 24

    以相反的顺序打印bash参数

  25. 25

    带for循环的JavaScript的顺序式本质

  26. 26

    为什么我的javascript参数未定义?

  27. 27

    为什么lsqnonlin重塑其输入参数?

  28. 28

    为什么lsqnonlin重塑其输入参数?

  29. 29

    为什么平移是本质矩阵的零向量

热门标签

归档