Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery fn.extend()返回对象中的值和调用值_Javascript_Jquery_Function_Object_Extend - Fatal编程技术网

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

Javascript jquery fn.extend()返回对象中的值和调用值,javascript,jquery,function,object,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; };

我需要一些帮助来理解一些东西,这对于严肃的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
<代码>$。扩展
仅用于预设默认设置。通常这是:


谢谢derek,但我无法将我的插件功能公开。或者你的意思是,如果我需要一个特定的值,我应该为它创建一个函数,从外部调用它并返回值-例如:myotherfunction(){return o.variable;}现在我不明白如何从外部调用它,比如:test=x.myotherfunction欢呼。@Andre-实际上,您的代码将无法工作,因为
$.extend
用于。这是为上面的帖子添加的:这就是我正在尝试做的,在
$中还有其他我需要的对象。myNameSpace
-但我还需要访问其中的一些第一个对象值,如示例中的o.variable。是的,这正是我想做的——没有办法绕过额外的函数“getVar”。谢谢你的提示@Andre-必须有一个函数返回数据,因为其中的变量是私有的。
(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);