JS基础: 函数的调用
本帖最后由 clearwater 于 2020-2-17 16:10 编辑请不要来回复一些对楼主没有帮助的水帖。--例:路过,感谢分享,帮顶等之类。
我在跟着某前端视频学习。函数是如何调用,我基本上看明白了,也知道用法了。
我不太清楚的地方是:见视频截图
被调用的函数 (fn 2,在17-20行),如果写在调动用函数的代码(fn1, -11行)后面也没关系吗? 只要代码里有fn2的封装函数,不论在哪,程序都能把它找出来?
(如果我写,我会把函数fn 2, 写在最前面; 函数fn1 写在中间; 最后再15行)
函数的两种定义方法
1.函数声明
function a(){}
2.函数表达式
var b = function(){}
函数声明的,如果放全局,可以在任何地方调用,不管上下。原理:自行搜索【函数提升】
函数表达式的,调用的时候,只能放下面。原理:它和定义变量一样。比如:var c = 2.想用c,只能在它下面用 首先函数提升程序运行时会把所有变量或者函数提升(此时未执行函数内的方法或者赋值等一系列操作
然后程序自上而下执行 ,当读到第13行fn2(),会去第17行执行fn2()内的函数 linmengqun 发表于 2020-2-17 15:58
支持一下
大哥,别来水帖。我的主帖第一行就说明了。您连看主帖都不看,在这里浪费时间,那您注册这个账号有啥用?
我需要用回答问题来支持。
别的支持不需要。
1+x讲过这个问题,好像是只能在后面,我记不太清了。。。我去找找
好,只能说你还没有弄懂面向对象的含义。你的说法是面向过程的逻辑,程序运行时会把每一个函数看成一个对象,第一个函数调用时程序会把第二个函数的对象实例化,在进行运算。
面向对象啊! 魔幻冰扬 发表于 2020-2-17 16:05
函数的两种定义方法
1.函数声明
function a(){}
非常感谢您的帮助。说得很清楚。
也感谢楼主各位回答的大神。 代码会有一段预读取的过程,他会先在GO(global object)里面先预读取好了两个fn函数然后在执行代码的。所以放后面也是没问题的。我最近也在学js推荐你一个教程哈https://ke.qq.com/course/231577?taid=2237351543933081
解决的话请给个评分哈 原来我的问题又叫预解析或提升。
我昨天看到的视频之后产生疑惑,然后在之后第10个视频中,视频老师清清楚楚地解释清楚辣。老师说,这个问题是面试中常提问到的。
我忍不住夸自己一下,善于提问。
;www
页:
[1]