"variable:function(){}"是什么意思?

Las*_*apa 0 javascript node.js

在Node.JS示例代码中,我发现了一个代码块,如下所示.

var messageReceivedCallBack = {
    onMessageReceived: function (message) {
        console.log('Message received ' + message);
    }
};
Run Code Online (Sandbox Code Playgroud)

这段代码意味着什么?具体来说,我无法理解带冒号的部分(':')

sle*_*man 5

这是一个对象文字.这不是变量,它是属性名称:

var foo = {
   a: 1,
   b: 2
};
Run Code Online (Sandbox Code Playgroud)

是相同的:

var foo = {};
foo.a = 1;
foo.b = 2;
Run Code Online (Sandbox Code Playgroud)

同理:

var foo = {
    a: function () {}
};
Run Code Online (Sandbox Code Playgroud)

是相同的:

var foo = {};
foo.a = function () {};
Run Code Online (Sandbox Code Playgroud)

因此如下:

var messageReceivedCallBack = {
    onMessageReceived: function (message) {
        console.log('Message received ' + message);
    }
};
Run Code Online (Sandbox Code Playgroud)

只是这样做:

var messageReceivedCallBack = {};

messageReceivedCallBack.onMessageReceived = function (message) {
    console.log('Message received ' + message);
};
Run Code Online (Sandbox Code Playgroud)

  • 选择的示例尽可能小,以使核心概念尽可能容易"看到".我将您的代码添加为另一个示例,但我认为将最简单的示例理解为什么并不容易. (2认同)