javascript插件中的引用错误

问题描述 投票:0回答:1

我正在创建一些基本的插件,我得到参考错误。以下是我的代码

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函数。

javascript jquery jquery-plugins
1个回答
1
投票

看起来你期望abc成为hoisted,但是你专门使用一种语法让abc未定义,直到执行赋值。

你需要将abc = function ...移动到abc()的调用之上,或者使用function abc() { }定义函数,这将允许它在你的调用之上被提升。

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

© www.soinside.com 2019 - 2024. All rights reserved.