我有几个方法,比如receiveMessage,收到......在JS下面的代码片段中的foreach循环之外。如何将this关键字与这两个关键字绑定在一起。我正在使用STRICT模式。
data.entry.forEach(function(pageEntry) {
let pageID = pageEntry.id;
let timeOfEvent = pageEntry.time;
// Iterate over each messaging event
pageEntry.messaging.forEach(function(messagingEvent) {
if (messagingEvent.optin) {
this.receivedAuthentication(messagingEvent);
} else if (messagingEvent.message) {
this.receivedMessage(messagingEvent);
} else if (messagingEvent.delivery) {
this.receivedDeliveryConfirmation(messagingEvent);
} else if (messagingEvent.postback) {
this.receivedPostback(messagingEvent);
} else if (messagingEvent.read) {
this.receivedMessageRead(messagingEvent);
} else if (messagingEvent.account_linking) {
this.receivedAccountLink(messagingEvent);
} else {
this.log("Webhook received unknown messagingEvent: ", messagingEvent);
}
}, this);
}, this);
我一直收到一个错误,说不能调用未定义的receiveMessage。我知道this关键字需要绑定。如何在嵌套的foreach循环中执行此操作。我希望外部上下文绑定到两个foreach循环。有什么建议吗?
[更新1] 代码不起作用。让我来说明我想要实现的目标,有人可以帮助我
我有一个包含多个功能的文件。他们在内部互相打电话,我正在使用STRICT MODE。它看起来像这样
'use strict';
module.exports = function(){
function call(){
small();
console.log('call');
}
function small(){
console.log('small');
}
}
我有另一个文件,主要想要从第一个文件提供函数作为回调。基本上我想这样做
'use strict';
let messenger = require('./export-it.js');
console.log(messenger.call());
这应该打印小''并且打电话给'这该怎么做?在严格模式下,需要内部函数调用和此关键字绑定。
更新2
这完美无缺,但代码看起来并不干净:(
'use strict';
function call(){
small();
console.log('call');
}
function small(){
console.log('small');
}
module.exports.call = call;
module.exports.small = small;
必须有办法将所有这些功能集中在一个屋檐下,否?