在对象上调试console.log

时间:2019-02-18 18:43:52

标签: javascript node.js alexa console.log

console.log中,我收到了对象canHandle: [Function: canHandle]和第二个canHandle: [Function]上的输出。两者之间有什么区别?

const SessionEndedRequest = {
    canHandle(handlerInput) {
        return handlerInput.requestEnvelope.request.type === 'SessionEndedRequest';
    }
};

返回canHandle: [Function: canHandle]

obj = {};
obj.canHandle = function (handlerInput) {
    return handlerInput.requestEnvelope.request.type === that.type
        && handlerInput.requestEnvelope.request.intent.name === that.name;
}

重置canHandle: [Function]

2 个答案:

答案 0 :(得分:3)

首先,您将一个函数分配给名为canHandle的属性。在这种情况下,该函数具有一个名称,并且名称为canHandle

在第二个步骤中,您将创建一个anonymous function并将其分配给对象的canHandle属性。这就是第二个函数没有名称的原因。

答案 1 :(得分:1)

这意味着canHandle是对象的方法

例如

const someObject = {
  canHandle() {}
};

您可以将其命名为someObject.canHandle()

实际上,这两个示例都是相同的... 在第一个示例中,您使用canHandle方法声明了对象。 第二个示例是为对象除垢,然后分配对象的canHandle方法