有些不明白的,在代码里注释了?麻烦老师看一下
来源:2-8 选择练习
慕哥5103152
2020-09-07 15:42:05
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function greeting() { //这个是声明?
var str = "hello";
function addWorld() {
str = str + ",world";
return sayHi;
}
function sayHi() {
alert(str);
}
return addWorld
// return sayHi, addWorld; //不能这样吗?为什么?
}
var g = greeting() //这个是声明?
// g() //这个是声明?
//addWorld() //这个是声明?
// g() //这个是声明?
var h = g()
var j = h()
//有没有可能跳过 addWorld() 直接执行sayHi()
//里边哪个是闭包函数啊?
</script>
</body>
</html>
1回答
同学你好,针对你的问题,在代码注释中给出了解答,可以查看下代码注释理解
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 函数声明
function greeting() { //这个是声明?
var str = "hello";
function addWorld() {
str = str + ",world";
return sayHi;
}
function sayHi() {
alert(str);
}
return addWorld
// 不可以这样,语法规定return后面只能返回一个
// return sayHi, addWorld; //不能这样吗?为什么?
}
var g = greeting() //这个是声明?// 这句代码调用greeting()函数,将返回值赋值给变量g
// g() //这个是声明?这是调用函数g
//addWorld() //这个是声明? 这是调用函数addWorld
// g() //这个是声明? 这是调用函数g
var h = g()
var j = h()
// 不可能,因为在addWord函数内部返回的sayHi方法,所以需要先调用addWorld方法,才能调用sayHi方法
//有没有可能跳过 addWorld() 直接执行sayHi()
// addWorld 和 sayHi方法都属于闭包函数
//里边哪个是闭包函数啊?
</script>
</body>
</html>如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题