关于 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 相关文章推荐
jQuery UI-Draggable 参数集合
Jan 10 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
Jun 27 Javascript
js定时器的使用(实例讲解)
Jan 06 Javascript
jquery 显示*天*时*分*秒实现时间计时器
May 07 Javascript
Jquery动态添加及删除页面节点元素示例代码
Jun 16 Javascript
js实现背景图片感应鼠标变化的方法
Feb 28 Javascript
跟我学习javascript的定时器
Nov 19 Javascript
JSON字符串转换JSONObject和JSONArray的方法
Jun 03 Javascript
封装获取dom元素的简单实例
Jul 08 Javascript
基于vue的下拉刷新指令和滚动刷新指令
Dec 23 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
Nov 11 Javascript
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循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
2016/11/01 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
puppeteer实现html截图的示例代码
2019/01/10 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
python中实现精确的浮点数运算详解
2017/11/02 Python
python命令行工具Click快速掌握
2019/07/04 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
Android面试题附答案
2014/12/08 面试题
应聘自荐书
2013/10/08 职场文书
供电工程专业求职信
2014/08/09 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
先进工作者申报材料
2014/12/23 职场文书
小学音乐教师个人工作总结
2015/02/05 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书
Python绘制分类图的方法
2021/04/20 Python