2017-02-27 122 views
0

正在寻找解决方案的SO,但无法找到它。在javascript中调用实例创建回调的实例方法

let instance = new Obj(arguments, function() { 
    instance.instanceMethod(function() { 
     console.log('status'); 
    }) 
}) 

我想从实例创建中的回调调用实例的方法。我怎样才能正确实施这个逻辑?上述不起作用,节点将“实例”报告为未定义。我试图将“bind(this)”添加到外部回调函数的末尾,但这也不起作用。

+0

'instance'或'instace'? – hackerrdave

+1

你打算怎么拨打回叫电话? *实例*没有分配一个值,直到完全评估右侧。 – RobG

+0

“Obj”是你自己的班还是第三方班?如果它是你自己的,它是如何实现的?在这种情况下,如果'Obj'构造函数是以这种方式实现的,您可以使用'this'来引用'instance'。 – Frxstrem

回答

0
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的函数。因此实例将首先被函数调用。

相关问题