this 和 self

/*
需求
var page = {
           a : 1,
           b :  2,
           c : {
                   d : 3,
                   e : 4,
                  f : function(){
                    
                  //这里!!!怎么调用fun属性方法
                 },
                 g :  //这里!!!!怎么调用a属性的值1
           },
           fun : function(){
                console.log('我是属性方法')
           }

        }
        console.log(page);
        page.c.f();
        console.log(page.c.g);*/




/*    
设置全局变量gg来实现
    var page = {
    gg:null,
   a : 1,
   b :  2,
   c : {
           d : 3,
           e : 4,
          f : function(){
          gg.fun();
         },
         g : null,
   },
   fun : function(){
        console.log('我是属性方法');
   },
   create:function(){gg=this;gg.c.g=gg.a;},
}
 
page.create();
page.c.f();
console.log(page.c.g);
        console.log(gg);*/


var page = {
         a : 1,
         b :  2,
         c : {
                d : 3,
                e : 4,
                f : function(){
                console.log(this);//page.c对象 当前对象
                console.log(self);//windows对象 全局的
                console.log(page);//page对象 是全局的
                  return page.fun();
                },
                g : function(){
                    return page.a;
                }
                //g:page.a不能这样调用
        },
        fun : function(){
          console.log(this);//page对象 当前对象
        }
       }
       page.c.f();
       console.log(page.c.g());

 

posted on 2016-10-26 14:38  小乔流水人家  阅读(103)  评论(0编辑  收藏  举报

导航