在 第5节 中,我们学习了定义与使用函数名直接调用函数。这一节里,我们来学习如何通过变量来调用函数。
将函数赋给变量
我们知道变量可以引用内存数据,比如字符串、数值、布尔值。除了这些,变量还可以引用函数。下面给出一个示例:
function sayHello() // 定义sayHello函数
{
console.log("Hello World");
}
var sayHelloVar = sayHello; //将sayHello函数赋值给sayHelloVar变量
sayHelloVar(); // 通过sayHelloVar变量调用函数
在上图的代码中,我们定义了一个sayHello函数,然后将这个函数赋值给sayHelloVar变量,最后再通过sayHelloVar变量调用sayHello函数。
先来看一下脚本运行的结果:

可以看到,脚本成功输出了Hello World。所以:
- 通过将函数名直接赋值给变量,就能让变量指向函数。
- 通过在函数变量后加上()(小括号),就能通过变量调用函数。
将函数赋给对象属性
既然函数可以赋值给变量,而对象的属性就是一个变量,那么函数能否赋值给对象属性?答案是可以的。
看一下下面的示例:
function sayHello() // 创建sayHello函数
{
console.log("Hello World");
}
var student = {
sayHi:sayHello
} // 将sayHello方法赋值给student的sayHi属性
student.sayHi(); // 调用student.sayHi属性调用函数
上面的代码将函数sayHello赋值给了student对象的sayHi属性,然后通过student.sayHi来调用。来看一下运行结果:

可以看到,调试控制台中输出了预期中的"Hello World"。所以可以将函数赋值给对象属性,并且通过对象属性来调用。
解析 console.log
我们回过头来看一下 console.log。在前面的课程中,我们一直通过console.log来输出字符串。那到底什么是console.log?
首先,console是一个Node.js环境变量。环境变量意思就是,这变量脚本一启动就存在,由Node.js环境提供。这意味在脚本的任何地方都能使用console变量。
其次,console这个由Node.js框架提供的变量,有一个log属性。这个log属性引用的是一个函数。所以
console.log // 是一个函数引用
console.log() // 是一个函数调用
console.log 这个函数的作用是,向调试控制台中输出内容。
好了,这节课程讲到这里。通过这一节,你又学习到了JavaScript中的关键内容,函数引用。恭喜你!你又成长了!但这还是远远不够。
为什么console.log() 的括号中能插入字符串?这背后的原理与规则是什么?
什么是方法?方法与函数的区别是什么?
请继续关注我的课程,我将继续带领大家一一解答上述疑问。
想学计算机技术吗?需要1对1专业级导师指导吗?想要团队陪你一起进步吗?欢迎加我为好友!

网友评论