国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

關于 byval 與 byref 的區別分析總結

2019-11-21 01:55:01
字體:
來源:轉載
供稿:網友
二者區別:
byval 傳遞數值,實參和形參分處不同的內存單元,互不干擾! 
byref 傳遞地址,實參和形參占用相同的內存單元,形參變則實參變?。。。。。?
通俗理解:
byval 一去不復返 
byref 進去再出來,可能被更新!
在JavaScript中:
Boolean,Number,String型的參數是按值傳遞的 ==> 相當于VBS中的ByVal;
而Object型的參數(包括JS對象,Array對象,Function對象等),是按引用傳遞 ==> 相當于VBS中的ByRef
復制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"> 
<head> 
<title> 函數傳值測試 </title> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<meta name="author" content="楓巖,CNLEI" /> 
<meta name="copyright" content="cnlei.y.l@gmail.com , http://www.cnlei.com" /> 
</head> 
<body> 
<script type="text/javascript"> 
<!-- 
function Num(n){n=n*2;}//Number型的參數,按值傳遞的 ==> 相當于VBS中的ByVal; 
function Obj(){} 
Obj.prototype.show = function(o){ //JS對象,是按引用傳遞 ==> 相當于VBS中的ByRef 
  o.toString = function(){ 
    return("{id:"+this.id+",desc:"+this.desc+"}"); 
  } 

function Func(f){ //Function對象,是按引用傳遞 ==> 相當于VBS中的ByRef 
  f.show = function(o){ 
    o.toString = function(){ 
      return("{id:"+this.id+",desc:"+this.desc+",toString:function(){} }"); 
    } 
  } 


var N; 
N=1; 
alert(N); 
Num(N); 
alert(N); 

var O; 
O = { 
  id:"001", 
  desc:"編號說明", 
  toString: function (){ 
    return null; 
  } 
}; 
var F = new Obj(); 
var F2 = new Obj(); 
alert(O.id+"/n"+O.toString()); 
F.show(O); 
alert(O.id+"/n"+O.toString()); 
Func(F); 
F.show(O); 
alert(O.id+"/n"+O.toString()); 
//--> 
</script> 
</body> 
</html> 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江都市| 万载县| 广州市| 汽车| 夏河县| 柳江县| 南漳县| 鄂伦春自治旗| 茂名市| 许昌市| 濉溪县| 安福县| 深水埗区| 多伦县| 三原县| 伽师县| 庆城县| 松原市| 临城县| 延寿县| 平和县| 衡阳县| 犍为县| 当雄县| 宜春市| 体育| 肥城市| 璧山县| 五华县| 阜宁县| 且末县| 仙游县| 宜州市| 荔浦县| 嵩明县| 闻喜县| 海阳市| 乌苏市| 阿合奇县| 禹州市| 新巴尔虎左旗|