关于javascript函数的复制和javascript解析的意思的问题?谢谢! 10
这是javascript高级程序设计中截取的几段话,有点问题1文中的解析两次代码的解析式什么意思?2第一段说操作的是引用不是内存,那么如果改变的话,会通过引用改变内存中的...
这是javascript高级程序设计中截取的几段话,有点问题
1文中的解析两次代码的解析式什么意思?
2第一段说操作的是引用不是内存,那么如果改变的话,会通过引用改变内存中的值吗?通过引用间接改变?
3上面说对象复制的话,复制的是指针,那么一个改变,会影响到另外一个,但是后面说函数也是对象,为什么函数复制以后,可以相互独立,改变一个不影响另外一个?谢谢! 展开
1文中的解析两次代码的解析式什么意思?
2第一段说操作的是引用不是内存,那么如果改变的话,会通过引用改变内存中的值吗?通过引用间接改变?
3上面说对象复制的话,复制的是指针,那么一个改变,会影响到另外一个,但是后面说函数也是对象,为什么函数复制以后,可以相互独立,改变一个不影响另外一个?谢谢! 展开
展开全部
解析就是解释执行js代码,第一种定义函数方法两次解析 因为函数的本体是字符串
首先弄清变量和对象的关系,一个变量赋值给另个变量会把变量的值复制一份,引用类型变量也是如此,但是引用的值其实是对象的地址,所以一个引用变量a赋值给另个引用变量b后两个变量都是同一个地址(也就是指向的都是同一个对象),所以当a变量的对象修改后,另个引用的对象也被修改因为它们是同一个对象,但如果将一个新的对象赋值给a,a和b就是不一样的地址,操作a而b是不会被影响的。
举个例子: var a = {}; var b = a; //a和b指向同一个对象
a.name = "222"; alert(b.name);//b.name也是222;
如果 a = null; alert(b.name); //只是清除了a的值,对象仍然存在,所以b没受影响;
追问
a=null为什么不会导致b=也等于null啊?还有,为什么我给a赋予其他的值比如a=121,也是null,但是如果我给a赋予其他比如a=kkk就没有反应呢?请问?谢谢!
追答
你是赋值不是在操作对象
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询