Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将实函数分配到javascript对象中用作回调?_Javascript_Jquery_Jquery Ui - Fatal编程技术网

如何将实函数分配到javascript对象中用作回调?

如何将实函数分配到javascript对象中用作回调?,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我的Javascript乱七八糟,看起来像: 注意:不是工作代码,只是试图说明我的问题 $(function() { $(foo).Something( { //Something is a grid control buttons: { add: { onClick: function() { //Build dialog box to add stuff to grid $

我的Javascript乱七八糟,看起来像:

注意:不是工作代码,只是试图说明我的问题

$(function() {
    $(foo).Something( {  //Something is a grid control
       buttons: {
            add: {
                onClick: function() { //Build dialog box to add stuff to grid
                    $('<div></div>')
                    .html('...')
                    .dialog({
                        buttons: {
                            done: { //Finished button on dialog box
                                OnClick: function() {
                                    $(this).dialog('close');
                                }
                            }
                        }
                    });
                }
            }
       } 
    } );
});
我想用实函数替换一些函数{…},把事情弄清楚一点,去掉所有缩进。如何将一个实函数分配给其中一个回调,而不是一个匿名函数

function abc(){
  return false;
}
var callback = {click : abc}
然后可以使用callback.click.call或callback.click.apply


然后可以使用callback.click.call或callback.click.apply给出函数名,而不是函数{…}。

给出函数名,而不是函数{…}。

+1,因为这个缩进示例非常棒

您可以按照Joyce所述定义命名函数;您还可以通过声明一些变量是否为函数,并将代码扩展到多个非嵌套语句中,来相当程度地清理嵌套较深的代码

对话框创建将是我的第一个候选重构类型,它演示了如何使用命名函数:

function CreateDialog() { //Build dialog box to add stuff to grid
                    $('<div></div>')
                    .html('...')
                    .dialog({
                        buttons: {
                            done: { //Finished button on dialog box
                                OnClick: function() {
                                    $(this).dialog('close');
                                }
                            }
                        }


$(function() {
    $(foo).Something( {  //Something is a grid control
       buttons: {
            add: {
                onClick: CreateDialog
                }
            }
       } 
    } );
});

我还应该注意,您可以初始化大多数jQuery对象,就像您在创建jQueryUI之后正在使用它们一样。例如,您不必一次性配置所有按钮:

+1,因为缩进示例很棒

您可以按照Joyce所述定义命名函数;您还可以通过声明一些变量是否为函数,并将代码扩展到多个非嵌套语句中,来相当程度地清理嵌套较深的代码

对话框创建将是我的第一个候选重构类型,它演示了如何使用命名函数:

function CreateDialog() { //Build dialog box to add stuff to grid
                    $('<div></div>')
                    .html('...')
                    .dialog({
                        buttons: {
                            done: { //Finished button on dialog box
                                OnClick: function() {
                                    $(this).dialog('close');
                                }
                            }
                        }


$(function() {
    $(foo).Something( {  //Something is a grid control
       buttons: {
            add: {
                onClick: CreateDialog
                }
            }
       } 
    } );
});

我还应该注意,您可以初始化大多数jQuery对象,就像您在创建jQueryUI之后正在使用它们一样。例如,您不必一次配置所有按钮:

好的,我的答案如下:


哎呀。。您没有注意到额外的s:叹气:这就是你在凌晨3点做这件事的收获

好吧,我的答案是:


哎呀。。您没有注意到额外的s:叹气:这就是你在凌晨3点做这件事的收获

请注意,只有当abc不接受任何参数时,这种方法才有效。。我没有注意到额外的s:叹气:这就是我凌晨3点做这件事的收获。不。通过将参数传递给apply,可以将参数传递给abc。要作为abca调用,b使用callback.click.applythis[a,b];这个答案和伊格纳西奥的答案都是正确的。检查此方法是因为它有一个代码示例。请注意,此方法仅在abc不接受任何参数的情况下有效。Oops。。我没有注意到额外的s:叹气:这就是我凌晨3点做这件事的收获。不。通过将参数传递给apply,可以将参数传递给abc。要作为abca调用,b使用callback.click.applythis[a,b];这个答案和伊格纳西奥的答案都是正确的。正在检查这个,因为它有一个代码示例。Oops。。我没有注意到额外的s:叹气:这就是我凌晨3点做这件事的收获。哎呀。。我没有注意到额外的s:叹气:这就是我凌晨3点做这件事的收获。