如何将实函数分配到javascript对象中用作回调?
我的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 $
$(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点做这件事的收获。