代码之家  ›  专栏  ›  技术社区  ›  Alec Smart

jquery插件公共方法/函数

  •  3
  • Alec Smart  · 技术社区  · 15 年前

    我试图实现以下目标,但不知道有什么问题:

    $.a = function() {
    
    // some logic here
    
    function abc(id) {
       alert('test'+id);
    }
    
    
    }
    
    $.a.abc('1');
    

    我试过使用返回函数,但这似乎也不起作用。有人能帮忙吗?

    谢谢你抽出时间。

    2 回复  |  直到 13 年前
        1
  •  9
  •   Blixt    15 年前

    自从 $.a 必须是函数本身,您必须添加 abc 作为属性的函数 一美元 功能:

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

    如果 abc 必须从中定义 一美元 函数,您可以执行以下操作。请注意 $.a.abc 直到 一美元 使用此方法时调用了!在调用函数之前,不会计算函数内部的任何内容。

    $.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');
    
        2
  •  1
  •   James    15 年前
    $.a = (function(){
        var a = function() {
            //...
        };
        a.abc = function() {
            //...
        }
        return a;
    })();