new一个类的时候,传入的回调函数如何调用prototype上的方法?

比如,定义了一个类A,类A的prototype上有一个test方法,在new A(callback);的时候,传入的的callback里面如何调用A的test方法? 还有一点疑问,在传入callback里面this是指向什么?
问题可能有点小白。希望大神不舍赐教。

阅读 3k
2 个回答

如果传入 callback 在 A 里调用的话,这个 callback 的 this 是指向全局/undefined(严格模式下)。

可以为 callback 指定 this

function A (callback) {
  callback.call(A)
}

A.prototype.test = function (msg) {
  console.log(msg)
}

function callback () {
  this.prototype.test('I, Callback.')
}

new A(callback)

var newObj = new A();
1.newObj.test();//调用
2.this为newObj;//指向问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题