Javascript jquery fn.extend()返回对象中的值和调用值
我需要一些帮助来理解一些东西,这对于严肃的jquery和javascript程序员来说可能很容易 假设我有这样一个代码: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.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);