国产探花免费观看_亚洲丰满少妇自慰呻吟_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> 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宣汉县| 雷山县| 上虞市| 林甸县| 西昌市| 祥云县| 五寨县| 安顺市| 九江县| 元氏县| 五莲县| 四会市| 商城县| 瓮安县| 武冈市| 黔西县| 瑞金市| 建宁县| 元谋县| 绿春县| 阳谷县| 黔东| 盐池县| 南京市| 威宁| 明光市| 平乡县| 监利县| 措美县| 咸宁市| 永昌县| 达拉特旗| 郧西县| 石台县| 宜兴市| 蓬溪县| 麻阳| 康保县| 乐平市| 南岸区| 新龙县|