JS作业第四周
在JS的四周作业中,我有1个问题答不上来。主要是没弄清楚fun和fun()的区别。
调用fun
举例:
function a() {
function b() {
return "dfs"
}
alert(b)
}
var c = a();
c();
弹出:
function b() {
return "dfs"
}
为什么?
我觉得首先要清楚函数对象的另一种定义:var b = new Funtion(形参列表)
它等价于上面的函数定义。也就是说b代表了函数对象(这个对象代表整个函数内的内容,即弹出的内容)
调用fun()
举例:
function a() {
function b() {
return "123"
}
alert(b())
}
var c = a();
c();
弹出:
123
为什么?
因为fun()代表了这个函数的执行,这相当于是一种结果
不关上述的补充:
function fun(){};
调用fun() 和 function 的区别
fun就相当于函数对象 ;fun()就相当于一个方法,是一个结果
var a = fun()
把函数对象执行完的结果赋值给变量a
var a = fun
这里的变量a就变成了这个函数对象
JS作业第四周
直接上图先:
概括一下:
- 1.var的变量都是全局变量,包括在代码块,除了函数的作用域可以阻挡外
- 2.let的变量可以被代码块和函数作用域阻挡,跟正常的逻辑一样