在javascript中调用实例创建回调的实例方法
问题描述:
正在寻找解决方案的SO,但无法找到它。在javascript中调用实例创建回调的实例方法
let instance = new Obj(arguments, function() {
instance.instanceMethod(function() {
console.log('status');
})
})
我想从实例创建中的回调调用实例的方法。我怎样才能正确实施这个逻辑?上述不起作用,节点将“实例”报告为未定义。我试图将“bind(this)”添加到外部回调函数的末尾,但这也不起作用。
答
function Obj(args, cb){
setTimeout(cb, 0);
}
Obj.prototype.instanceMethod = function(cb){cb();};
let instance = new Obj([1,2,3], function() {
instance.instanceMethod(function() {
console.log('status');
})
});
使用setTimeout调用使用实例async
的函数。因此实例将首先被函数调用。
'instance'或'instace'? – hackerrdave
你打算怎么拨打回叫电话? *实例*没有分配一个值,直到完全评估右侧。 – RobG
“Obj”是你自己的班还是第三方班?如果它是你自己的,它是如何实现的?在这种情况下,如果'Obj'构造函数是以这种方式实现的,您可以使用'this'来引用'instance'。 – Frxstrem