我試圖用兩個對象創建一個函數調用鏈。Javascript中的嵌套函數參數和'this'上下文
我已經添加代碼中的註釋來描述我想要做的事:
function Huh(parentContext) {
this.parentContext = parentContext;
this.check = function() {
console.log(parentContext);
}
this.DoWork = function(successFunc) {
console.log('Huh.DoWork');
successFunc('yay');
};}
function Thing() {
this.nextSuccess = function(e) {
console.log('nextSuccess ' + e);
};
this.success = function(e) {
console.log('success!! ' + e);
var h = new Huh(this); // It looks like 'this' doesn't mean the Thing context any more. ?!?!
//h.check();
h.DoWork(this.nextSuccess); // THIS BREAKS.
};
this.fail = function() {
console.log('fail');
};
this.firstBit = function(successFunc, failFunc) {
var h = new Huh(this);
//h.check();
h.DoWork(this.success);
};
// start with this function
this.Go = function() {
this.firstBit(this.success, this.fail);
};}
這一切都休息,當我嘗試在Thing.success創建咦的第二個實例。
我嘗試通過this.nextSuccess,但它看起來像'這個'上下文是不一樣的。
請幫忙。
當您使用嵌套函數時,請嘗試在縮進中反映這一點。它使閱讀起來更容易。 – Skilldrick 2010-06-29 09:46:59
對不起。我試圖讓縮進工作,但代碼塊一直在打破。 – 2010-06-29 09:57:43