1

我有以下方法。我希望能够模拟一些东西,这样我就可以测试是否调用了 pete()。不知道当我使用闭包时如何做到这一点。有任何想法吗 ?

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

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

1 回答 1

3

在您的自执行匿名函数中,您正在使用对象属性。

jim并且pete需要是局部变量才能通过闭包“隐藏”它们。

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

    return {
       "publicjim": jim
    };  
})();
于 2011-01-19T13:01:43.500 回答