Inafikia kina ya ECMAScript

Inafikia kina ya ECMAScript inayofikia kwa uangalifu ni kwamba inasimamia (closure).

闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量。

简单的闭包实例

在 ECMAScript 中使用全局变量是一个简单的闭包实例。请思考下面这段代码:

var sMessage = "hello world";
function sayHelloWorld() {
  alert(sMessage);
}
sayHelloWorld();

在上面这段代码中,脚本被载入内存后,并没有为函数 sayHelloWorld() 计算变量 sMessage 的值。该函数捕获 sMessage 的值只是为了以后的使用,也就是说,解释程序知道在调用该函数时要检查 sMessage 的值。sMessage 将在函数调用 sayHelloWorld() 时(最后一行)被赋值,显示消息 "hello world"。

Mfano wa kufikiria wa uharibifu mkubwa

Kuandaa kifaa kwenye kifaa kinakua kufikiria kina uharibifu mkubwa. Masaa:

var iBaseNum = 10;
kifaa addNum(iNum1, iNum2) {
  kifaa doAdd() {
    kutumia iNum1 + iNum2 + iBaseNum;
  }
  kutumia doAdd();
}

Hapa, doAdd() inaainishwa kwa kifaa addNum() (kufikiria). Kifaa cha kufikiria ni kufikiria kwa sababu inaingia thamani za kifaa cha kusaidia iNum1 na iNum2 na thamani ya muhimu ya jumuiya iBaseNum. Kipindi cha kufikiria cha kifaa addNum() kimepiga doAdd(), kumaliza thamani mbili na muhimu wa jumuiya, na kumwambia thamani zote.

Mwahimu ambao inahitajika kusikia ni kwamba doAdd() inakubali ujumbe kwa uadilifu, inatumia thamani za kusaidia kutoka kwenye mazingira ya kusaidia.

Inavyoonekana ni kwamba kufikiria kina uwezo mkubwa na kawaida katika ECMAScript, inaweza kutumika kufanya uharibifu wa uharibifu.

Msaada:Kama kila mkono wa mkutano wa juu, inafaa kusikia kwa kumtumia msaada wa kufikiria, kwa sababu wengi wengi wana uharibifu mkubwa.