如何使用命名参数传递函数

时间:2013-04-16 20:54:48

标签: javascript jquery argument-passing

我正在创建扩展功能:

 jQuery.fn.openCreatePersonModal = function (arg1, personHandler) {
        var person = { "displayName": "john" };
        personHandler(person);
        return this;
  }

但不能这样使用它:

$("<div></div>").openCreatePersonModal({
    arg1: "bla",
    personHandler: somePreviouslyCreatedFunction
});

也不是这样的:

$("<div></div>").openCreatePersonModal({
    arg1: "bla",
    personHandler: function(person) { ... }
});

我得到了: undefined不是函数

所以它没有将某些以前的处理函数识别为函数。

1 个答案:

答案 0 :(得分:-1)

如果想要使用命名参数,则应使用1个参数并将其解释为对象

jQuery.fn.openCreatePersonModal = function (args) {
       var person = { "displayName": "john" };
       args.personHandler(person);                   // <-- notice "args."
       return this;
}