请解释以下在 javascript 函数中编写函数的方式:
(function (){
// some code
})()
我理解由于大括号“ () ”,该函数将立即执行,但是将函数括在大括号中是什么意思?
请解释以下在 javascript 函数中编写函数的方式:
(function (){
// some code
})()
我理解由于大括号“ () ”,该函数将立即执行,但是将函数括在大括号中是什么意思?
你的语法不正确。编辑:固定。
查看您想要调用一次且仅一次的普通函数定义:
function add(x,y) {
var z = x + y;
// do something with z
}
add(2,3);
您可以减少此代码以便立即执行它,无需将其命名为add:
(function(x ,y) {
var z = x + y;
// do something with z
})(2,3)
请注意我们如何用一组括号将函数括起来以使其成为可调用的表达式。此模式通常用于创建某些变量的闭包(捕获状态),例如:
jQuery.noConflict(); //Disables the use of $ in the global scope
(function($) {
//Safely use $ inside this function
$('.link').click(function(e) {
//etc
});
})(jQuery);
将代码包含在分组运算符中会将其从函数声明更改为函数表达式(其中名称是可选的,通常省略)。该模式通常被称为“立即调用的函数表达式”(iife)或“立即执行的函数表达式”(iefe)。
它用于替换只调用一次的函数声明。它也是模块模式的基础。