Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript插件中的引用错误_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

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插件中创建和初始化函数方面有没有更好的解决方案。无论如何,谢谢你的解释。