我正在egghead.com上学习编码,但我很难理解这段代码,特别是第4行,我们在哪里定义处理程序?
谢谢!
1 var deliveryBoy = {
2 name: "John",
3 handleMessage: function (message, handler) {
4 handler(message);
5 },
6
7 receive: function () {
8 var that = this;
9
10 this.handleMessage("Hello, ", function(message) {
11 that.name
12
13 console.log(message + that.name);
14 })
15 }
16 }
17 deliveryBoy.receive();
答案 0 :(得分:0)
'处理'在第3行定义(它是第二个参数)。 deliveryBoy.receive正在调用deliveryBoy.handleMessage并传入数据和函数。第17行正在调用deliveryBoy.receive以启动进程。这现在有意义吗?
答案 1 :(得分:0)
在Javascript中,您可以将函数作为参数传递给另一个函数。
在你的代码片段中,检查第10行。这里你将一个函数作为参数传递给deliveryBoy对象的handleMessage(它的值是一个函数)属性。
所以现在检查代码中的第3行。 handleMessage属性将函数作为其值。这个函数期望传递参数(message,handler)。 第二个参数将保存在第10行的函数调用中传递的函数。