在定义上执行非匿名函数

时间:2011-05-29 13:36:51

标签: javascript jquery javascript-events

我有以下代码:

$(document).ready(function() {

    var myFunc = function () {
        alert('test');
    };

    myfunc();  

    jQuery('#type-selector').change(myFunc);
});

这段代码的目的是我需要在document.ready事件和onChange事件上执行函数“mYfunc”。这段代码完美无缺,但我想知道有没有办法避免调用myFunc();而是在其定义上执行函数?换句话说,我需要保持对函数对象的引用并“在一行中”执行函数。

2 个答案:

答案 0 :(得分:4)

您可以触发change事件:

jQuery('#type-selector').change(function() {
    alert('test');
}).change();

jQuery('#type-selector').change(myFunc).change();

答案 1 :(得分:0)

你可以写

jQuery('#type-selector').change(
    (function() {
        alert('test');
        return arguments.callee;
    })()
);

此函数在调用(return arguments.callee)时自动返回 我立即调用函数,然后将其返回值9(与函数相同)传递给change作为事件处理程序。

这是令人困惑的代码;我不建议使用它。