javascript - jquery fn.extend() 返回值和调用对象中的值

标签 javascript jquery function object extend

我需要一些帮助来理解一些东西,这对于认真的 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]); 等方法,但我无法理解 - 这一定很简单......

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

最佳答案

你不能用你当前的代码获取里面的变量,除非你把它改成:

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

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

已添加

看来您正在尝试为 jQuery 制作一个插件。要创建插件,您不需要使用 $.extend$.extend 仅用于预设默认设置。 [1] 通常这是 how you set up a plugin :

(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/

关于javascript - jquery fn.extend() 返回值和调用对象中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16125993/

相关文章:

javascript - 如何在 JavaScript 中捕获没有可见输入字段的键盘输入

jquery - 检查所有空文本输入的验证不起作用

ASP.net 服务器事件在客户端处理

javascript - 单击按钮时获取用户的当前位置

c++ - 从多个函数指针中提取参数参数列表的元函数

javascript - Firebug v2.0.1 在旧断点处中断

javascript - 了解 AngularJS 函数 $arguments

javascript - 如何使网站响应?

计算传递给函数的数组中的元素数量

c++ - 我在 C++/cli 中的函数的返回值始终为 1