3

我正在尝试实现以下目标,但不知道出了什么问题:

$.a = function() {

// some logic here

function abc(id) {
   alert('test'+id);
}


}

$.a.abc('1');

我尝试使用返回函数,但这似乎也不起作用。有人可以帮忙吗。

感谢您的时间。

4

2 回答 2

9

由于$.amust 本身就是一个函数,因此您必须将该abc函数作为属性添加到$.a函数中:

$.a = function () {
    // some logic here...
};

$.a.abc = function (id) {
    alert('test' + id);
};

如果abc必须从$.a函数内定义,您可以执行以下操作。请注意,在使用此方法时,直到被调用$.a.abc后才可用!$.a在调用函数之前,不会评估函数内部的任何内容。

$.a = function () {

    // Do some logic here...

    // Add abc as a property to the currently calling function ($.a)
    arguments.callee.abc = function (id) {
        alert('test' + id);
    };
};

$.a();
$.a.abc('1');
于 2009-07-30T06:41:02.893 回答
1
$.a = (function(){
    var a = function() {
        //...
    };
    a.abc = function() {
        //...
    }
    return a;
})();
于 2009-07-30T07:51:27.663 回答