js 两个小括号 ()() 的用法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

js 两个小括号 ()() 的用法.txt爱情是彩色气球,无论颜色如何严厉,经不起针尖轻轻一刺。一流的爱人,既能让女人爱一辈子,又能一辈子爱一个女人!js 两个小括号 ()() 的用法

文章分类:Web前端

JavaScript 中,考查如下代码:

Js代码

(function()

{

alert("cftea");

})();

(function()

{

alert("cftea");

})();

其实这段代码的意思就是执行这个匿名函数,弹出提示框,内容为“cftea”。

可以把上述代码理解为:

Js代码

function foo()

{

alert(1);

}

foo();

function foo()

{

alert(1);

}

foo();

其实相同的功能还有另外两种写法,我们一并列出来如下:

Js代码

function foo()

{

alert("cftea");

}

foo();

(function()

{

alert("cftea");

})();

(function()

{

alert("cftea");

}());

void function()

{

alert("cftea");

}()

function foo()

{

alert("cftea");

}

foo();

(function()

{

alert("cftea");

})();

(function()

{

alert("cftea");

}());

void function()

{

alert("cftea");

}()

用途

说了这么多,这东西到底有什么用呢?它可以立即执行一段代码,并把结果赋给变量;打破我们常规的先写函数,再调用的流程,简化书写。

Js代码

ajax.xmlhttp = (...)();

ajax.xmlhttp = (...)();

例子:

Js代码

function Foo() {

var a = 123;

this.a = 456;

(function() {

alert(a); // 123

alert(this.a); // undefined

})();

}

var f = new Foo();

function Foo() {

var a = 123;

this.a = 456;

(function() {

alert(a); // 123

alert(this.a); // undefined

})();

}

var f = new Foo();

以上代码,先显示 123,再显示 undefined,说明 alert(this.a); 这句中 this 是指本function 的,而不是其外部 function 的。如果要使用外部的成员,可使用参数的形式传入:

Js代码

function Foo() {

var a = 123;

this.a = 456;

(function(a) {

alert(a); // 456

})(this.a);

}

var f = new Foo();

function Foo() {

var a = 123;

this.a = 456;

(function(a) {

alert(a); // 456

})(this.a);

}

var f = new Foo();

很好理解,再看看下面的:

Js代码

function Foo() {

var a = 123;

this.a = 456;

(function() {

alert(a); // 123

alert(this.a); // undefined

this.b = 789;

})();

(function() {

alert(this.b); // 789

})();

}

var f = new Foo();

(function() {

alert(this.b); // 789

})();

同样是先显示 123,然后显示 undefined,然后显示 789,最后又是一个 789。这说明用两个小括号括起来的都是位于一个执行上下文中的,不论这些代码放在哪里。

再看看:

function Foo() {

(function() {

this.b = 789;

})();

(function() {

alert(this.b); // 789

var b = 0;

alert(b); // 0

})();

相关文档
最新文档