解释javascript空洞的函数参数

解释javascript空洞的函数参数,javascript,angularjs,function,parameters,arguments,Javascript,Angularjs,Function,Parameters,Arguments,我不能用我的胳膊搂住这个。这里有一个例子。。。有人能解释一下吗 在AngularJs中,可以编写自定义过滤器。一个这样的过滤器可能是这样的(多亏了亚当·弗里曼和他的新书《角度论》): 在本例中,内部函数中“value”的值由Angular自动提供。“reverse”参数由代码开发人员提供,必须由HTML插入。“reverse”的值由HTML提供,如下所示: ... <tr>{{p.category | labelCase:true}}</td> 。。。{p.catego

我不能用我的胳膊搂住这个。这里有一个例子。。。有人能解释一下吗

在AngularJs中,可以编写自定义过滤器。一个这样的过滤器可能是这样的(多亏了亚当·弗里曼和他的新书《角度论》):

在本例中,内部函数中“value”的值由Angular自动提供。“reverse”参数由代码开发人员提供,必须由HTML插入。“reverse”的值由HTML提供,如下所示:

... <tr>{{p.category | labelCase:true}}</td>
。。。{p.category | labelCase:true}
因此,以下是我的问题:

  • 我们怎么知道Angular会自动将值数据插入“value”参数?这是常识吗

  • 为什么HTML“labelCase:true”调用不必为函数中的“value”参数提供占位符?换句话说,Angular如何知道“true”应用于第二个参数

  • 这如何不产生难以置信的脆弱代码?如果棱角分明的人决定在将来提供另一个自动提供的论点,会发生什么?如果发生这种情况,是否会中断当前编写的内部函数:返回函数(value,reverse){…}

  • 这让我非常困惑。我期待着更好地了解这一切

  • 创建客户过滤器的角度文档说明:

    此工厂函数应返回一个新的筛选函数,该函数将输入值作为第一个参数

    这意味着Angular将把输入值作为
    value
    参数提供给函数,因为它是第一个参数

  • 文件接着说:

    任何筛选器参数都将作为附加参数传递给筛选器函数

    因此HTML不必为第一个参数留出位置,Angular会按照适当的顺序提供它们

  • 与大多数Javascript函数一样,您必须知道参数的顺序才能正确调用它们。开发人员通常保证不会不兼容地更改顺序。可以在参数列表的末尾添加其他参数;如果没有提供,函数必须适当地默认它们(JS会自动将它们设置为
    未定义

  • 是的,这是常识。如果angularjs表达式(
    {p.category |…
    ),则该
    值可以解释为从右侧开始的
    输入
  • 如第一个问题所述,
    是过滤器的输入。由
    分隔的每个附加值将作为参数添加到过滤器回调中
  • 在使用库进行开发时,这是一个经常遇到的问题。API和接口确实会发生变化。我想它们在将来不会发生变化,但你永远不会知道。这就是为什么有时需要迁移的原因
  • {{p.category | customFilter:secondParam:thirdParam:..}

    angular.module("exampleApp")
      .filter("labelCase", function() {
        return function (input, someSecondParam, someThirdParam) {
          if (angular.isString(input)) {
             ....
          }
        };
     });
    
    angular.module("exampleApp")
      .filter("labelCase", function() {
        return function (input, someSecondParam, someThirdParam) {
          if (angular.isString(input)) {
             ....
          }
        };
     });