在javascript中从实例的创建回调中调用实例方法

时间:2017-02-27 01:14:14

标签: javascript callback

正在寻找解决方案,但找不到解决方案。

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

我正在尝试从实例创建中的回调中调用实例的方法。我该如何正确实现这个逻辑?以上不起作用,节点将“实例”报告为未定义。我尝试在外部回调函数的末尾添加“bind(this)”,但这也不起作用。

1 个答案:

答案 0 :(得分: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的函数。所以实例将首先被函数调用。