标签:场景 编程 定义函数 函数定义 不能 实现 针对 作用域 过程
一般我们使用函数,在顺序上是先定义函数,在去调用它。
而回调函数则在写代码的过程中反了过来,先去设计函数的调用场景,然后到了需要调用的时候再去定义它。
但无论如何,函数的执行过程都是一样的,某个对象调用一个已经被定义了的函数,即便到了调用的时候才去定义,但还是得等定义好了才能进行调用不是吗?计算机的执行过程是一样的。所谓的回调,不过是针对人而言的。
匿名的回调函数里面能不能在其括号里进行参数传递?答案是可以的,函数的传参有两个地方共同实现,首先是定义函数时,然后是调用函数时,但在js里面,似乎定义函数时写的参数不是那么重要,你写不写都无所谓,所以关键便在于调用函数的时候传入的参数。我们都知道,回调函数在写法上是先进行调用场景编程的,所以如果在函数中调用回调函数时没有进行传参,那么你在通过匿名函数定义它的时候,传入什么都是无用的,因为你调用的时候什么也没穿进去呀,就像你给朋友的信中说我去看你的时候会带礼物,但是真正到了你去看他的时候却什么也没有带,他当然什么也收不到呀。只要在调用回调函数的地方进行了传参,那么在定义回调函数的时候括号里写不写参数都一样,反正在调用的时候会传进来的。
这里比较绕的地方在于,其实我们在用匿名函数去定义回调函数的时候,其实就是到了调用它的时候了,所以你在之前设计回调函数的调用之时写在括号里面的参数,此时必须已经存在于调用回调函数的对象的作用域中,否则巧妇难为无米之炊,报错是已经是很委婉的抗议方式了。
标签:场景 编程 定义函数 函数定义 不能 实现 针对 作用域 过程
原文地址:https://www.cnblogs.com/anch/p/12162989.html