对Javascript中传输和引用的深入理解

对Javascript中传输和引用的深入理解
1。传输值(按值)

变量的值被复制,这与原始值无关。也就是说,即使修改了新值,原始值也不会改变。在Javascript中,基本类型都是传输的。
复制代码代码如下所示:
testpassvalue()函数
{
var m=1;
var = 2;
M / / N值,复制,转移到passvalue
passvalue(m,n);
警报(m);将是原始值
}
功能passvalue(A,B)
{
a = a;;改变a的值,A是这里的原始值。
警报(a);
}

输出结果:




2。参考(参照)。

引用本身抄送功能,对象的引用没有复制转移(所以java),在功能上,如果在对象属性的变化,和原来的引用指向同一对象,所以在原参考将修改访问的价值;

但是,如果只引用函数中的一个新对象,则它不会更改原始对象的值,而更改只是引用的副本。
复制代码代码如下所示:
testpassvalue()函数
{
VaR日期=新的日期(2006,02,27);
警报((日期getdate)); / /输出27
/ /日期参考本身的复制,转移到passreference,注意指向的对象,是不可复制的日期
PassReference(日);
警报((日期getdate)); / /输出12
/ /同上。
ChangeReference(日);
警报((日期getdate)); / /输出12
}
功能passreference(DA)
{
原始引用DA和是同一个对象在函数中,通过访问原始引用,将对象的日期属性值修改为值之后。
(12)da.setdate;
}
功能changereference(DA)
{
该引用实际上是一个拷贝引用,引用本身重新赋值,不会影响原始引用。
DA =新的日期(2007,05,11);

对一个新对象的引用,即对原始对象的原始引用
警报((DA。getdate)); / /输出11
}

3特殊字符串

在Javascript中,字符串也被引用。在JS中唯一的charAt方法不变没有相应的改性方法和字符串在java相同。
复制代码代码如下所示:
var;
var地狱+O;
如果(S1 = S2)
警报(S1=S2); / /这句话不熟悉的人可能觉得不执行执行java(这句话我不赞成,java也将执行!),因为java = =是一样的。事实上,在js中的字符串=值是相等的,所以这个句子将被执行。但对其他对象和java = =同样是相同的。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部