Javascript 如何从方法中访问jQuery插件变量?
我正在尝试编写一个简单的jQuery插件,我遇到了一个绊脚石,尽管我不确定如何从插件的方法中访问插件上的变量Javascript 如何从方法中访问jQuery插件变量?,javascript,jquery,Javascript,Jquery,我正在尝试编写一个简单的jQuery插件,我遇到了一个绊脚石,尽管我不确定如何从插件的方法中访问插件上的变量 (function($) { $.fn.testPlugin = function() { var testVar = "Hello World"; alert(testVar); $.fn.testPlugin.testMethod(); }; $.fn.testPlugin.testMethod = funct
(function($) {
$.fn.testPlugin = function() {
var testVar = "Hello World";
alert(testVar);
$.fn.testPlugin.testMethod();
};
$.fn.testPlugin.testMethod = function() {
alert($.fn.testPlugin.testVar);
};
}(jQuery));
$("body").testPlugin();
这段代码首先警告“Hello World”,然后警告“undefined”(因此尝试从方法中访问它会返回一个空变量),是否有任何方法可以从testMethod中访问testVar?这不可能吗?我这样做是错误的吗?您正在第一个方法中创建一个局部变量。这使得它的范围仅限于方法本身 相反,您应该参照插件实际创建该变量,如下所示:
$.fn.testPlugin.testVar = "Hello World";
更新后的plunker位于此处:您可以将变量放入自调用函数的外部作用域
(function($) {
var testVar;
$.fn.testPlugin = function() {
testVar = "Hello World";
alert(testVar);
$.fn.testPlugin.testMethod();
};
$.fn.testPlugin.testMethod = function() {
alert(testVar);
};
}(jQuery));
$("body").testPlugin();
例如,如果您不希望您的变量被插件之外的任何其他代码访问,那么这可能是更理想的方法。小提琴:谢谢!我知道我一定错过了一些明显的东西。