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


Posted in Javascript onOctober 08, 2007

二者区别:
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> 
Javascript 相关文章推荐
推荐:极酷右键菜单
Nov 29 Javascript
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 Javascript
js键盘事件的keyCode
Jul 29 Javascript
window.location 对象所包含的属性
Oct 10 Javascript
分享一则JavaScript滚动条插件源码
Mar 03 Javascript
jQuery构造函数init参数分析续
May 13 Javascript
探秘vue-rx 2.0(推荐)
Sep 21 Javascript
JQuery判断radio单选框是否选中并获取值的方法
Jan 17 jQuery
JS实现数组去重及数组内对象去重功能示例
Feb 02 Javascript
egg.js的基本使用和调用数据库的方法示例
May 18 Javascript
vue项目中引入Sass实例方法
Aug 27 Javascript
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
JavaScript加密解密7种方法总结分析
Oct 07 #Javascript
JavaScript 入门·JavaScript 具有全范围的运算符
Oct 01 #Javascript
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
Oct 01 #Javascript
javascript入门·图片对象(无刷新变换图片)\滚动图像
Oct 01 #Javascript
javascript入门·对象属性方法大总结
Oct 01 #Javascript
JS创建优美的页面滑动块效果 - Glider.js
Sep 27 #Javascript
[HTML/CSS/Javascript]WWTJS
Sep 25 #Javascript
You might like
PHP可变函数的使用详解
2013/06/14 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
功能强大的php分页函数
2016/07/20 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
python 生成目录树及显示文件大小的代码
2009/07/23 Python
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
HTML5在a标签内放置块级元素示例代码
2013/08/23 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
会计顶岗实习心得
2014/01/25 职场文书
全运会口号
2014/06/20 职场文书
开服装店计划书
2014/08/15 职场文书
班级活动总结格式
2014/08/30 职场文书
师德师风事迹材料
2014/12/20 职场文书
春风化雨观后感
2015/06/11 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书
Vue操作Storage本地化存储
2022/04/29 Vue.js