首页 > 编程知识 正文

未定义函数或变量,随机变量的分布函数

时间:2023-05-03 12:55:28 阅读:182106 作者:2013

执行函数在执行前预编译时,还会生成AO。 利用此特性可以保存循环中的变量,以便在循环结束后可以使用该变量。

案例:

要求:创建长度为10的数组并保存10个函数。 这些函数的功能在控制台上按0、2 .9的顺序输出。

思路:使用for循环向数组添加函数

原理:闭包可以封装变量

错误格式:

script type=' text/JavaScript ' function test () {var arr=[]; for(varI=0; i 10; I () {arr[i]=function ) ) console.log ) I; }}return arr; }var myArr=test (; myArr[0] (; myArr[1] (; myArr[2] (; myArr[3] (; myArr[4] (; /script这样写数组内的函数和test形成闭包,输出结果是5个10。 由于test函数的执行结束,I的值为10,调用myArr[0]时将显示console.log(I ); 的I值为10,其他也为10

正确的写法:

script type=' text/JavaScript ' function test () {var arr=[]; for(varI=0; i 10; I ) ) (function(j ) ) {arr[j]=function ) ) console.log ) j; }(I ) }返回arr; }var myArr=test (; myArr[0] (; myArr[1] (; myArr[2] (; myArr[3] (; myArr[4] (; 每个/script即时执行函数都有一个独立的AO,调用myArr[0]和myArr[5]进行访问的j位于不同的AO中,如下图所示

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。