1.问obj的值会改变吗?

var obj = {a : 1};
(function (obj) {
   obj = {a : 2};
})(obj);

外部的obj不变.
因为匿名函数中obj传入参数等于是创建了一个局部变量obj, 里面的obj指向了一个新的对象 . 如果改成(function() { obj = {a : 2}; })(obj);  就会改变了


    2.obj中a的值会改变吗? 匿名函数里的this指向的是什么?

    var obj = {
       a:1, 
       func: function() {
           (function () {
               a=2;
            }();
        }
    } ;
    obj.func();
    obj里的a不会变. 匿名函数里的this指向全局对象window. 这等于是给window加了一个名为a的属性
    要改变obj中a的值 , 应当:
    
    (function() {
    
    this.a = 2
    
    }).call(this);
    
    (function() {
    
    this.a = 2
    
    }).call(this);
    
    或者obj中定义
    
    func: function() {
    
    var self = this;
    
    (function(){
    
    self.a=2;
    
    })();}


      3.要实现函数内每隔5秒调用自己这个函数,100次以后停止,怎么办?

               (function(){
                var index = 0;
                function fn(){
                         if(index < 100){
                             index++;
                             setTimeout(function(){
                                      fn();
                                  },5000);        
                    }
                }
                fn();
      })();


        4.点击一个ul的五个li元素,分别弹出他们的序号,怎么做?

        方法1 :
        
        var oLi =document.getElementsByTagName('li');
        
        for(var i=0;i<oLis.length; i++){
        
            oLis[i].onclick = (function(j){
        
                return function(){
        
                    alert(j);
        
                }
        
            })(i);
        
        }
        
        方法2:
        
        var oLi =document.getElementsByTagName('li');
        
        for(var i=0;i<oLi.length; i++){
        
            (function(j){
        
                oLi[j].onclick = function(){
        
                    alert(j);
        
                };
        
            })(i);
        
        }
        
        方法3:
        
        var oLi =document.getElementsByTagName('li');
        
        for(var i=0;i<oLi.length; i++){
        
            oLi[i].index = i;
        
            oLi[i].onclick = function(){
        
                alert(this.index);
        
            }
        
        }