• Js的引用关系示例和总结


          三种引用(指针引用)关系,借助引用关系可以形成复杂的链关系,巧妙借助链关系可以实现收放自如,形散神不散的神奇效果,jquery就是其中一例:

            1.对象指向属性;
            2.a=b(b是对象,a为变量),a指向b;
            3.实例对象指向其原型对象;

        我们这里做个验证,兴建一个no原型:

     var no=function(){
    		  return new temp.init();
    		 }
    

      这个原型在window上下文下返回一个构造实例对象new temp.init().

       接着让temp做中间变量来引用no原型对象里的内容:

       

     var temp=no.prototype={ //将no原型赋给temp对象,让temp可以引用到no原型,这样做的好处是可以借助temp对象来扩展no原型而不污染no原型
    		 	init:function(){
    		 		var a=10;
    		 		this["pro"]=a;
    		 	},
    		 	func1:function(){
                             alert("func1");
    		 	}
    		 }
    

      让" var temp=no.prototype={}"这样的好处是可以让temp引用到no原型,可以借助temp来扩展no原型而不污染no原型,至于怎么扩展,就在下面这点睛一笔:

      temp.init.prototype=temp;
    

      这句话的意思是:temp.init.prototype=temp=no.prototype,很直观的可以看到temp.init的实例可以借助引用关系访问到temp对象内容和no.prototype对象内容。

        下面来验证是否能借助引用访问到:     

            temp.func2=function(){
                 	alert(2);
                 }
    
              no().func1(); //no.prototype里属性,可以访问
              no().func2(); //temp对象扩展内容,也可以访问
    

      巧妙运用引用关系的链结构,你会越来越体会到Js更神奇的魅力和创造性。

  • 相关阅读:
    P1939 【模板】矩阵加速(数列)
    NUMBER BASE CONVERSION POJ
    Raid POJ
    Genius ACM HihoCoder
    BZOJ1500: [NOI2005]维修数列 Splay维护序列
    BZOJ3245: 最快路线 拆点dijkstra
    存个头
    895E
    894E
    tarjan缩点/求桥模板
  • 原文地址:https://www.cnblogs.com/zhu-xingyu/p/5366824.html
Copyright © 2020-2023  润新知