【问题标题】:Debugging console.log on object在对象上调试 console.log
【发布时间】:2019-02-18 18:43:51
【问题描述】:

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]

【问题讨论】:

  • 请贴出你用来产生这些输出的代码,并说明你在什么环境下运行它。
  • 可能第一个函数有名字,第二个没有,但我们只能猜测。
  • 关于console.log 方法,您始终可以使用debugger 魔术字进行真正的调试

标签: javascript node.js alexa console.log


【解决方案1】:

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

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

【讨论】:

  • 很好的解释兄弟大+1
【解决方案2】:

表示canHandle是对象的方法

例如

const someObject = {
  canHandle() {}
};

你可以称之为 someObject.canHandle()

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

【讨论】:

    猜你喜欢
    • 2017-01-22
    • 2012-10-26
    • 2018-01-06
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    相关资源
    最近更新 更多