2011-01-19 40 views
1

我有以下方法..我想能夠模擬一些東西,所以我可以測試是否已調用pete()。不知道如何在使用閉包時執行此操作。有任何想法嗎 ?茉莉花 - JavaScript測試關閉

bla = (function(){ 
    var a = 0; 
    jim = function(){ 
     if(a==1){ 
      pete(); 
     } 
    }, 
    pete = function(){ 
     return 1; 
    } 

    var publicInterface = { 
     "publicjim": jim 
    } 
    return publicInterface; 
})(); 
+0

修正了我的例子使用正確的語法..抱歉的原因錯字。 – wmitchell 2011-01-19 14:07:24

+0

(我感覺像一個schmo - 我只是回答了一些這樣的刮臉網站) 你真的想測試,當你打電話給吉姆時,皮特被稱爲?或者你想測試,當你打電話給吉姆,發生什麼事情(皮特觸發器)? – user588542 2011-01-25 12:21:18

回答

3

在您的自動執行匿名函數中,您使用的是對象propertys。

jimpete需要是局部變量以便通過閉包「隱藏」它們。

var bla = (function(){ 
    var a = 1; 
    var jim = function() { 
     if (a == 1) { 
     pete(); 
     } 
    }; 
    var pete = function() { 
     return 1; 
    }; 

    return { 
     "publicjim": jim 
    }; 
})();