Javascript自执行函数和jQuery扩展方法
我们通常把js代码写在一个单独的js文件中,然后在页面中引入文件。但是,有时引入变量名或函数名与其他js代码冲突。那么,如何解决这个问题呢范围隔离。在js中,作用域是按函数划分的,js代码包对函数的调用可以避免变量/函数名冲突,但这并不是因为函数本身没有任何出错的危险,包装等可能的解决方案:自函数名、执行函数。自执行函数是用一对括号将匿名函数包装起来,然后立即执行括号(括号),因为函数没有名称,它实现了作用域的绝对隔离和函数名的冲突:
(函数(){())
console.log(东西);
})();
For example, we write some JS logic in the custome.js file and encapsulate it in the function init.We use the self - execution function to wrap up the function init that we define, like the following.
(函数(){())
函数init(){
console.log('execute init…;
}
init();
});
当我们介绍custome.js在HTML中,自我执行的功能是立即执行,然后执行init函数内部定义:
然而,自执行函数立即执行的属性使调用变得困难,通过定义jQuery扩展方法,可以解决这个问题,并且可以获得自执行函数调用和执行的主动权。
首先,让我们来看一下定义jQuery扩展方法的基本形式:
JQuery.extend({
MyMethod:函数(){
console.log(东西);
}
});
这样,上面所定义的方法可以被美元。MyMethod()或()jquery.mymethod。
还有另一种定义jQuery扩展方法的方法。
JQuery.fn.extend({
MyMethod:函数(){
console.log(东西);;
}
});
通过定义为上述扩展的方法,它需要通过jQuery选择器,如由标签选择器$(按钮)。MyMethod(args)
在理解了js自执行函数和jQuery扩展方法之后,我们将两者结合起来。
接下来,我们使用自执行函数立即执行的特性来定义jQuery扩展方法:
(功能(JQ){
函数init(){
console.log(东西);
}
Jq.extend({
MyMethod:函数(){
init();
}
})
}(jQuery);
这种自我执行的函数接收到jQuery对象作为参数,并定义了jQuery扩展方法MyMethod内部,实现了真正的逻辑代码初始化函数。
呼叫:
$(函数(){())
MyMethod()美元;
});
解释uff1a
当引入jQuery文件时,jQuery对象是全局可用的;
然后,我们介绍了自定义js文件custome.js,其中自执行函数接收到jQuery对象作为参数,并立即执行,并在MyMethod定义jQuery扩展方法。
然后我们可以通过调用$执行初始化功能。memethod()()()或jquery.mymethod页面加载完成后
以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。