一次输出多个相同数字的原理

类似于上面这个问题?知道 f1 返回数据是什么吗?

在操作台上,掉用f1这个函数,为什么是函数那?下面跟大家讲

一次输出多个相同数字的原理


1、先看代码,代码上是一个函数内,定义了,一个空数组,一个循环,循环内进行了往数组内添加对象

2、然后下面开始循环,循环向数组内添加一个函数对象。如下图

一次输出多个相同数字的原理

所以现在arr数组内拥有是三个function

一次输出多个相同数字的原理

注意这里的数组不是具体值,如若想看i*i的值,需要怎么办那?

既然数组内是个函数,那么调用这个函数就可以了如  f1();

一次输出多个相同数字的原理

这时候就看到 i 成为4,这是什么原因那?

1.首先for是个循环,当i=1的时候,向下执行代码,就数组内添加了一个函数

一次输出多个相同数字的原理

注意这里的 i  是没有值的,因为循环还在继续;当 i=4 不满足条件时候,退出循环

现在数组内就存放了,三个函数对象

一次输出多个相同数字的原理

接下来大家调用这个函数如,下标为0的那个函数对象,返回的数值就是16;

原因就是因为上面所说的 i=4 不满足条件,但是 i 的值已经等于4了!

所以当你调用这个函数运算结果是4*4=16;


这里需要注意几个问题

第一,数组内不仅仅可以存放数字,也可以存放函数,对象等

第二,这里 i 的值不是一上去就获取的,这个 i 的值是等你执行完循环,需要调用的时候才会附上的值!因为你传进去的是个变量 i 不是一个数字  i   

相关文章: