使用作为参数传递的函数声明

时间:2017-06-20 15:28:41

标签: javascript

我正在尝试创建以下代码可以使用的存根定义:



func.calc({
  'divide': function(num1, num2) {
    // do something
  },
  'add': function(num1, num2, num3) {
    // do something
  }
});




到目前为止,我一直无法在第二个参数中获取传递给函数的参数。这就是我一直在努力做的事情:



var func = {
  calc: function(operationsArray) {
    if (div) {
      operationsArray[0](args); /* get args */
    }
    else (add) {
      operationsArray[1](args); /* get args */
    }
  }
}




在第一个片段中作为参数传递时,是否可以获得整个函数定义(带参数和实现)?

1 个答案:

答案 0 :(得分:0)

您将[{ "Post_id":"4", "Post_title":"This is testig", "Post_body":"<p>Ki<\/p>", "Post_thumnail":"", "Post_category":"Sports", "Post_Share":"Public", "Post_status":"", "Post_author":"ajaynegi", "Post_time":"2017-06-19 22:26:17", "Description":"Hello my name is jitendee" }] 声明为接受func.temp作为第二个参数的方法。另一方面,您使用Array作为第二个参数调用该方法。

JavaScript规范告诉我们不保证字段顺序:

  

4.3.3对象   对象是Object类型的成员。它是一个无序的属性集合,每个属性都包含一个原始值,对象或函数。存储在对象属性中的函数称为方法。

意味着您不应该访问Object&amp; in_func使用位置索引(即[0])。

您应该使用如下数组调用该函数:

&#13;
&#13;
in_func2
&#13;
&#13;
&#13;

OR ,实现该功能,使其使用显式名称:

&#13;
&#13;
func.temp(mainArg, [
  function(arg1, arg2) {
    // do something
  },
  function(arg1, arg2, arg3) {
    // do something
  }
]);
&#13;
&#13;
&#13;