javascript函数的传值与传址
1.函数的传址和传址有什么区别?2.为什么在JAVASCRIPT声明变量,VBSCRIPT也可以访问到?...
1.函数的传址和传址有什么区别?
2.为什么在JAVASCRIPT声明变量,VBSCRIPT也可以访问到? 展开
2.为什么在JAVASCRIPT声明变量,VBSCRIPT也可以访问到? 展开
2013-07-10
展开全部
1.函数的传址和传址有什么区别?
答:变量存储在内存中,函数调用变量是获取变量在内存中的地址进行调用的,传址方式是函数直接对变量所在的内存地址进行操作,变量内保存的内容被函数修改,传址的方式是函数临时创建一个变量用来保存变量的值,函数操作的是临时变量的地址,这样就原变量中保存的内容不会被函数修改的.
2.为什么在JAVASCRIPT声明变量,VBSCRIPT也可以访问到?
在同一个页面上同时使用JAVASCRIPT和VBScript时,服务器实例并缓存两个脚本引擎,而在客户端声明的JAVASCRIPT 和VBScript变量,整个网页环境中都是可以访问到的 所以可以互相调用..深层次的原因我也不大了解,但同时使用javascript和VBScript时,服务器必须实例化并尝试缓存两个(而不是一个)脚本引擎,这在一定程度上增加了系统负担。因此,从性能上考虑,不应在同一页面中混用多种脚本引擎. 看这个示例:
<script language="javascript">
var Cygnus = 123;
</script>
<script language="vbscript">
Dim Cygnus1
Cygnus1 = Cygnus
alert(Cygnus1)
alert(Cygnus)
</script>
答:变量存储在内存中,函数调用变量是获取变量在内存中的地址进行调用的,传址方式是函数直接对变量所在的内存地址进行操作,变量内保存的内容被函数修改,传址的方式是函数临时创建一个变量用来保存变量的值,函数操作的是临时变量的地址,这样就原变量中保存的内容不会被函数修改的.
2.为什么在JAVASCRIPT声明变量,VBSCRIPT也可以访问到?
在同一个页面上同时使用JAVASCRIPT和VBScript时,服务器实例并缓存两个脚本引擎,而在客户端声明的JAVASCRIPT 和VBScript变量,整个网页环境中都是可以访问到的 所以可以互相调用..深层次的原因我也不大了解,但同时使用javascript和VBScript时,服务器必须实例化并尝试缓存两个(而不是一个)脚本引擎,这在一定程度上增加了系统负担。因此,从性能上考虑,不应在同一页面中混用多种脚本引擎. 看这个示例:
<script language="javascript">
var Cygnus = 123;
</script>
<script language="vbscript">
Dim Cygnus1
Cygnus1 = Cygnus
alert(Cygnus1)
alert(Cygnus)
</script>
2013-07-10
展开全部
传值:
void addit(int a,b,c);
{
c=a+b;
}
void main()
{
int c;
addit(1,2,c); (传址时为 addit(1,2,&c))
}
这时当调用函数时,main中C的值不会变化,这就是传值调用,就是传它只把c的值传给了addit函数,addit在堆栈中做了一份c的副本来操作,完毕(相加)后,main函数中的c的值并不会变化。如要让它实现相加的结果,就要用到传址调用:
int addit(int a,int b,int *c)
{
*c=a+b;
}
(主程序不变)。这时c的值就变为了3,因为main调用addit时,用&将c的地址传递给了addit函数,addit用*c来改变了C的值。如果还不明白,建议老兄看看c语言的书。基础的书就可以。
void addit(int a,b,c);
{
c=a+b;
}
void main()
{
int c;
addit(1,2,c); (传址时为 addit(1,2,&c))
}
这时当调用函数时,main中C的值不会变化,这就是传值调用,就是传它只把c的值传给了addit函数,addit在堆栈中做了一份c的副本来操作,完毕(相加)后,main函数中的c的值并不会变化。如要让它实现相加的结果,就要用到传址调用:
int addit(int a,int b,int *c)
{
*c=a+b;
}
(主程序不变)。这时c的值就变为了3,因为main调用addit时,用&将c的地址传递给了addit函数,addit用*c来改变了C的值。如果还不明白,建议老兄看看c语言的书。基础的书就可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询