javascript 插件中的引用错误

Reference Error in javascript plugin

我正在创建一些基本插件,但出现引用错误。下面是我的代码

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);
 }
};

有人可以解释为什么我会收到此错误以及如何克服它。因为我需要在插件的开头调用一些重置和初始化函数。

您似乎希望 abc 成为 hoisted,但您专门使用了一种语法,在执行赋值之前未定义 abc

您需要将 abc = function ... 移至 abc() 的调用上方,使用 function abc() { } 定义函数,这将允许它被悬挂在你的召唤之上。

请注意,如果您只是简单地移动赋值,您应该使用 var abc = function ... 并创建一个局部变量,而不是您当前正在创建的全局 abc 变量。