源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

关于 byval 与 byref 的区别分析总结

  • 时间:2020-06-14 08:57 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:关于 byval 与 byref 的区别分析总结
二者区别: byval 传递数值,实参和形参分处不同的内存单元,互不干扰!  byref 传递地址,实参和形参占用相同的内存单元,形参变则实参变!!!!!! 通俗理解: byval 一去不复返  byref 进去再出来,可能被更新! 在JavaScript中: Boolean,Number,String型的参数是按值传递的 ==> 相当于VBS中的ByVal; 而Object型的参数(包括JS对象,Array对象,Function对象等),是按引用传递 ==> 相当于VBS中的ByRef
[u]复制代码[/u] 代码如下:
<!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> 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部