關(guān)于 byval 與 byref 的區(qū)別分析總結(jié)
更新時(shí)間:2007年10月08日 16:37:22 作者:
二者區(qū)別:
byval 傳遞數(shù)值,實(shí)參和形參分處不同的內(nèi)存單元,互不干擾!
byref 傳遞地址,實(shí)參和形參占用相同的內(nèi)存單元,形參變則實(shí)參變?。。。。。?
通俗理解:
byval 一去不復(fù)返
byref 進(jìn)去再出來,可能被更新!
在JavaScript中:
Boolean,Number,String型的參數(shù)是按值傳遞的 ==> 相當(dāng)于VBS中的ByVal;
而Object型的參數(shù)(包括JS對象,Array對象,Function對象等),是按引用傳遞 ==> 相當(dāng)于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> 函數(shù)傳值測試 </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型的參數(shù),按值傳遞的 ==> 相當(dāng)于VBS中的ByVal;
function Obj(){}
Obj.prototype.show = function(o){ //JS對象,是按引用傳遞 ==> 相當(dāng)于VBS中的ByRef
o.toString = function(){
return("{id:"+this.id+",desc:"+this.desc+"}");
}
}
function Func(f){ //Function對象,是按引用傳遞 ==> 相當(dāng)于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:"編號(hào)說明",
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>
byval 傳遞數(shù)值,實(shí)參和形參分處不同的內(nèi)存單元,互不干擾!
byref 傳遞地址,實(shí)參和形參占用相同的內(nèi)存單元,形參變則實(shí)參變?。。。。。?
通俗理解:
byval 一去不復(fù)返
byref 進(jìn)去再出來,可能被更新!
在JavaScript中:
Boolean,Number,String型的參數(shù)是按值傳遞的 ==> 相當(dāng)于VBS中的ByVal;
而Object型的參數(shù)(包括JS對象,Array對象,Function對象等),是按引用傳遞 ==> 相當(dāng)于VBS中的ByRef
復(fù)制代碼 代碼如下:
<!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> 函數(shù)傳值測試 </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型的參數(shù),按值傳遞的 ==> 相當(dāng)于VBS中的ByVal;
function Obj(){}
Obj.prototype.show = function(o){ //JS對象,是按引用傳遞 ==> 相當(dāng)于VBS中的ByRef
o.toString = function(){
return("{id:"+this.id+",desc:"+this.desc+"}");
}
}
function Func(f){ //Function對象,是按引用傳遞 ==> 相當(dāng)于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:"編號(hào)說明",
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>
相關(guān)文章
JavaScript對象和字串之間的轉(zhuǎn)換實(shí)例探討
從對象的格式可以看出,如果字串的格式定義成 json 格式的, 就可以直接轉(zhuǎn)換為obj了,感興趣的朋友可以參考下哈2013-04-04
JavaScript實(shí)現(xiàn)通過滑塊改變網(wǎng)頁顏色
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)通過滑塊改變網(wǎng)頁顏色,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
微信小程序自定義純凈模態(tài)框(彈出框)的實(shí)例代碼
這篇文章主要介紹了微信小程序自定義純凈模態(tài)框(彈出框)的實(shí)例代碼,代碼簡答易懂,非常不錯(cuò),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
JavaScript實(shí)現(xiàn)標(biāo)題欄文字輪播效果代碼
這篇文章主要介紹了JavaScript實(shí)現(xiàn)標(biāo)題欄文字輪播效果代碼,涉及JavaScript基于時(shí)間函數(shù)及流程控制操作標(biāo)題欄文字的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
詳解layui?laydate選擇時(shí)間的回調(diào)方法
這篇文章主要介紹了layui?laydate選擇時(shí)間的回調(diào)方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01
List Information About the Binary Files Used by an Applicati
List Information About the Binary Files Used by an Application...2007-06-06
JavaScript動(dòng)態(tài)生成二維碼圖片
本文給大家介紹js動(dòng)態(tài)生成二維碼圖片的相關(guān)內(nèi)容,感興趣的朋友一起學(xué)習(xí)吧2016-04-04

