0

一个简短的例子来说明这个长标题(问题被评论):

(让我们承认我们单击了与此 javascript 相关联的 HTML 文档上的按钮)

function AClass() {

}

AClass.prototype.stepOne = function() {
  console.log('stepOne');
  //How to call stepTwo() from here (since `this` refer to the button DOM Object element) ?
}

AClass.prototype.stepTwo = function() {
  console.log('stepTwo');
}

var A = new Aclass();

$('button').click(A.stepOne);

我的第一步是var that = this在构造函数中声明一个经典的,但由于它超出了方法的范围,有没有办法在使用方法作为回调时使用这种语法?

4

2 回答 2

1
$('button').click(function(){
    A.stepOne();
});

现在stepOne有了 A 对象的上下文

于 2013-06-19T09:19:52.847 回答
0

通过将调用包装在匿名函数中来创建闭包。

$('button').click(function(){A.stepOne()});

然后只需从 stepOne 调用 stepTwo

AClass.prototype.stepOne = function() {
  console.log('stepOne');
  this.stepTwo();
}

工作示例 http://jsfiddle.net/wD68z/

于 2013-06-19T09:17:51.207 回答