我需要一些帮助来理解一些东西,这对于认真的 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);
关于javascript - jquery fn.extend() 返回值和调用对象中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16125993/