javascriptの伝値と住所

1749 ワード

タイプ
 コピー
 転送
 比較
数字
 伝値
  伝値
  伝値
 ブール
   伝値
   伝値
   伝値
 文字列
 変数なし
  変数なし
   伝値
 オブジェクト
 住所を伝える
 住所を伝える
 住所を伝える
 
 
 
  • オブジェクトは、コピーと比較中にアドレス
  • を伝えます.
     
    function myObject(name){
        this.name=name;
        }
       var o1=new myObject("o1");
    
       var o2=o1;
       alert("o1.name="+o1.name);
       alert("o2.name="+o2.name);
       alert(o1==o2)
       o2.name="o2"
       alert("o1.name="+o1.name);
       alert("o2.name="+o2.name)
       alert(o1==o2)
     
    結果:
  • o 1
  • o 1
  • true
  • o 2
  • o 2
  • true
  •  
  • オブジェクトは、転送中にアドレスを伝える
  • .
     
    function myObject(name){
        this.name=name;
        }
    var o1=new myObject("o1");
    
    function changeName(o){
      o.name="o";
    }
    changeName(o1);
    alert(o1.name);	
      
     結果:
  • o
  •  
    例:
    var a={};
    		var b={}
    		function create(){
    			var text={"name":"text"};
    			a.text=text;
    			b.text=text;
    			}
    		create()
    		alert(a.text.name);
    		alert(b.text.name)
     
    結果:
    テキスト
     
    もしaオブジェクトがtext.nameの値を修正したら、bの中のtext.nameも変化します.
    var a={};
    		var b={}
    		function create(){
    			var text={"name":"text"};
    			a.text=text;
    			b.text=text;
    			}
    		create()
    		alert(a.text.name);
    		a.text.name="a"
    		alert(b.text.name)
     
    結果:
    text,a
     
    普通の変数の場合は違います.
    var a={};
    		var b={}
    		function create(){
    			var text=10;
    			a.text=text;
    			b.text=text;
    			}
    		create()
    		alert(a.text);
    		a.text=15;
    		alert(b.text)
     結果:
    10,10