"(function(){})()"的分步解析
一、"(function(){})()"的功能
功能描述:定义一个函数对象并执行。
返回值:该代码段返回定义的函数对象的执行结果。
这个写法到底是什么意思呢?
首先我们把代码分为2个部分:"(function(){})" 和 "()"
"(function(){})"的功能:定义一个函数对象。
"()":执行函数并返回结果。
下面我们来逐步分析这种写法。
二、"(function(){})()"的分步解析
首先尝试理解以下2种描述:
1、定义一个函数a,返回固定值1;
对应的javascript代码片段:
function a()
{
return 1;
}
2、定义一个对象a,该对象为函数对象,函数功能返回固定值1;
对应的javascript代码片段:
var a = new Object();
a = function()
{
return 1;
}
简化写法:
var a = function()
{
return 1;
}
进一步简化
var a = function(){return 1}
3、有上可以了解到
javascript代码片段
var a = function(){return 1}
实现的是定义一个变量a,a为一个对象,确切说是一个函数对象,返回固定值1;
一个简单的问题如何调用a?
当然是:a()
那如果"a = function(){return 1}",a的调用又怎么写?
"function(){return 1}" + "()"
即:
(function(){return 1})()
备注:
什么函数定义部分加个"()"?
其实这个"()"没有特殊含义,只是把函数对象作为一个整体。
如果不加"()"那么 就是"function(){return 1}()"这明显是一个语法错误。
功能描述:定义一个函数对象并执行。
返回值:该代码段返回定义的函数对象的执行结果。
这个写法到底是什么意思呢?
首先我们把代码分为2个部分:"(function(){})" 和 "()"
"(function(){})"的功能:定义一个函数对象。
"()":执行函数并返回结果。
下面我们来逐步分析这种写法。
二、"(function(){})()"的分步解析
首先尝试理解以下2种描述:
1、定义一个函数a,返回固定值1;
对应的javascript代码片段:
function a()
{
return 1;
}
2、定义一个对象a,该对象为函数对象,函数功能返回固定值1;
对应的javascript代码片段:
var a = new Object();
a = function()
{
return 1;
}
简化写法:
var a = function()
{
return 1;
}
进一步简化
var a = function(){return 1}
3、有上可以了解到
javascript代码片段
var a = function(){return 1}
实现的是定义一个变量a,a为一个对象,确切说是一个函数对象,返回固定值1;
一个简单的问题如何调用a?
当然是:a()
那如果"a = function(){return 1}",a的调用又怎么写?
"function(){return 1}" + "()"
即:
(function(){return 1})()
备注:
什么函数定义部分加个"()"?
其实这个"()"没有特殊含义,只是把函数对象作为一个整体。
如果不加"()"那么 就是"function(){return 1}()"这明显是一个语法错误。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.