我正在创建一些基本的插件,我得到参考错误。以下是我的代码
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
成为hoisted,但是你专门使用一种语法让abc
未定义,直到执行赋值。
你需要将abc = function ...
移动到abc()
的调用之上,或者使用function abc() { }
定义函数,这将允许它在你的调用之上被提升。
请注意,如果您只是移动赋值,则应使用var abc = function ...
并创建局部变量,而不是您当前正在创建的全局abc
变量。