2013-03-06 113 views
0

我在學習JavaScript的過程中我並期待在此代碼:的JavaScript的onclick調用函數

function foo1 { 
    var curObj = this; 

    this.foo2 = function() { 
     curObj.test = "foo2"; 
    } 

    this.foo3 = function() { 
     curObj.test = "foo3"; 
    } 

    // called by 
    x.on("click", curObj.foo1) 
    x.on("click", curObj.foo2) 
} 

的「foo2的」和「foo3」功能是重複的,所以我想替換它們喜歡的東西:

function setTest(foo) { 
    curObj.test = foo; 
} 

function foo1 { 
    var curObj.test; 
    x.on("click", setTest(foo)); 
} 

所以我的問題是我如何通過curObj的功能setTest,x.onClick = setTest(這一點,FOO)不工作。如果我想修改函數setTest()中的其他curObj值,那麼像「this」這樣的東西會覆蓋那個呢? 「this」是對內存地址還是對象ID的引用?

你們真棒,謝謝你們願意提供的任何幫助!

+0

'函數foo1 {'應該是'函數foo1(){',它是一個語法錯誤,或錯字。你直接設置這些值:'this.test =「foo1」'你想使用私有變量嗎? – Ibu 2013-03-06 05:58:22

+0

不,但我想引用setTest中foo1範圍內的curObj var。那有意義嗎?我想通過curObj setTest。 – txcotrader 2013-03-06 07:03:33

回答