有人可以解释一下这段代码吗?

时间:2016-12-07 18:56:01

标签: javascript function object

我正在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();

2 个答案:

答案 0 :(得分:0)

'处理'在第3行定义(它是第二个参数)。 deliveryBoy.receive正在调用deliveryBoy.handleMessage并传入数据和函数。第17行正在调用deliveryBoy.receive以启动进程。这现在有意义吗?

答案 1 :(得分:0)

在Javascript中,您可以将函数作为参数传递给另一个函数。

在你的代码片段中,检查第10行。这里你将一个函数作为参数传递给deliveryBoy对象的handleMessage(它的值是一个函数)属性。

所以现在检查代码中的第3行。 handleMessage属性将函数作为其值。这个函数期望传递参数(message,handler)。 第二个参数将保存在第10行的函数调用中传递的函数。