关于 byval 与 byref 的区别分析总结
2007-10-08 00:00
543 查看
二者区别:
byval 传递数值,实参和形参分处不同的内存单元,互不干扰!
byref 传递地址,实参和形参占用相同的内存单元,形参变则实参变!!!!!!
通俗理解:
byval 一去不复返
byref 进去再出来,可能被更新!
在JavaScript中:
Boolean,Number,String型的参数是按值传递的 ==> 相当于VBS中的ByVal;
而Object型的参数(包括JS对象,Array对象,Function对象等),是按引用传递 ==> 相当于VBS中的ByRef
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>
相关文章推荐
- 关于 byval 与 byref 的区别分析总结
- php中关于mysqli和mysql区别的一些知识点分析
- php中关于mysqli和mysql区别的一些知识点分析
- 关于 ResourceBundle和Properties 区别联系(个人总结)
- C++中关于函数内静态数组和new分配的动态数组的区别分析
- Loader与URLLoader区别的总结分析
- Linux-0.11内核源码分析系列:关于线性地址,逻辑地址,物理地址的关系与区别
- 关于C++中虚拟继承的一些总结分析
- 关于C++中的NULL、0、nullptr 区别分析
- VB中ByVal与ByRef有什么区别
- C#中堆和栈的区别分析(有待更新总结)
- ByVal和ByRef的区别
- 【转】关于B/S架构应用程序的权限设置分析和总结
- 关于语义分析的简单总结
- ByVal和ByRef的区别
- 有关于break,continue,return的区别和代码分析
- VB.NET 中 ByVal 和 ByRef 传参方法的区别
- php中关于mysqli和mysql区别的一些知识点分析
- 总结:Web中关于JPEG 、PNG和GIF的区别
- 关于系统性能测试的步骤总结和分析