javascript插件中的引用错误
我正在创建一些基本的插件,我得到了参考错误。下面是我的代码javascript插件中的引用错误,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我正在创建一些基本的插件,我得到了参考错误。下面是我的代码 jQuery.fn.validate = function(options) { var _self = this; // with below call I gets reference error. abc(); //but if call in below it works fine _self.on("submit", function(event) { abc(); // works
jQuery.fn.validate = function(options) {
var _self = this;
// with below call I gets reference error.
abc();
//but if call in below it works fine
_self.on("submit", function(event) {
abc(); // works fine
}),
abc = function () {
console.log('here);
}
};
有人能解释一下我为什么会犯这个错误以及如何克服它吗。因为我需要在插件开始时调用一些reset和init函数。看起来您希望
abc
是这样,但是您特别使用了一种语法,在执行赋值之前,abc
是未定义的
您需要将abc=function…
移动到abc()
调用上方,或者使用function abc(){}
定义函数,这将允许将其提升到调用上方
请注意,如果只是移动赋值,则应使用
var abc=function…
并创建一个局部变量,而不是当前创建的全局abc
变量。在声明之前调用abc(),请将对abc()的调用移动到声明abc=function()的下面你不应该在插件中定义全局名称,你应该使abc
成为本地名称。可能重复@Barmar你所说的本地名称是什么意思?你能给我举个例子吗?var abc=…
而不仅仅是abc=…
好的,我明白你的意思,但是当我调用_self.on(“submit”,function(event){abc();//works fine}),@Amanjaura时它就起作用了,因为这是在你的赋值之后调用的,在将来的某个时候,当单击按钮并调用回调时。那么在创建函数abc=functions
或function abc()
时,我应该在插件中使用哪种方法呢?或者在如何在js插件中创建和初始化函数方面有没有更好的解决方案。无论如何,谢谢你的解释。