关于 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 相关文章推荐
JavaScript 拾漏补遗
Dec 27 Javascript
jquery中的事件处理详细介绍
Jun 24 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
Dec 31 Javascript
详解AngularJS中module模块的导入导出
Dec 10 Javascript
Vue.js用法详解
Nov 13 Javascript
javascript Function函数理解与实战
Dec 01 Javascript
JS设计模式之访问者模式定义与用法分析
Feb 05 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
Mar 28 Javascript
jQuery实现的简单对话框拖动功能示例
Jun 05 jQuery
在vue项目中,将juery设置为全局变量的方法
Sep 25 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
May 30 Javascript
Vue Router中应用中间件的方法
Aug 06 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实现Ftp用户的在线管理的代码
2007/03/06 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
YII Framework框架教程之国际化实现方法
2016/03/14 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
浅谈JavaScript字符集
2014/05/22 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
2014/07/21 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
微信小程序登录态控制深入分析
2017/04/12 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
python爬取网站数据保存使用的方法
2013/11/20 Python
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
python遍历路径破解表单的示例
2020/11/21 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
python中@contextmanager实例用法
2021/02/07 Python
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
优秀求职信范文分享
2014/01/26 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
门市房租房协议书
2014/12/04 职场文书
三国演义读书笔记
2015/06/25 职场文书
高中物理教学反思
2016/02/19 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
python 镜像环境搭建总结
2022/09/23 Python