2

我需要一些帮助来理解某些东西,这对于严肃的 jquery 和 javascript 程序员来说可能很容易。

假设我有这样的代码:

jQuery.fn.extend({
   myNameSpace: {
     myPlugIn: function (o) { 
       var o = { variable : o.variable || false };

      var myfunction = function(v) {
      o.variable = v;
      };
      return {
         myfunction : myfunction
      };

    }
});

现在我可以这样称呼它:

x = new $.myNameSpace.myPlugIn({variable : 99}) ;

然后我像这样调用我的函数 myfunction

x.myfunction(20);

我可以理解,现在的问题是:如何在插件中获取变量的值。

我试过类似的东西,alert(x.o[variable]);但我就是不明白 - 这一定很容易......

我尝试完成的是一个值,如果插件内部的某些内容完成或计算,我可以调用它。

4

1 回答 1

1

您无法使用当前代码获取内部变量,除非您将其更改为:

var myfunction = function(v) {
    o.variable = v;
    return v;  //or o.variable
};

//...
x.myfunction(20)  //20;

添加

看来您正在尝试为 jQuery 制作插件。要创建插件,请不要使用$.extend. $.extend仅用于预设默认设置。[1]通常这是您设置插件的方式

(function($) {
    var methods = {
        getVar: function(){ 
            return $.extend({
                data: data,
            }, methods);
        },
        setVar: function(d){ 
            data = d;
            return methods;
        }
    },
    data = {};

    $.fn.myPlugin = function(options) {
        //do stuff
        data = $.extend( data , options );

        return methods;
    };
})(jQuery);

http://jsfiddle.net/DerekL/wv5QH/1/

于 2013-04-20T22:55:57.567 回答