关于javascript函数的复制和javascript解析的意思的问题?谢谢! 10

这是javascript高级程序设计中截取的几段话,有点问题1文中的解析两次代码的解析式什么意思?2第一段说操作的是引用不是内存,那么如果改变的话,会通过引用改变内存中的... 这是javascript高级程序设计中截取的几段话,有点问题
1文中的解析两次代码的解析式什么意思?
2第一段说操作的是引用不是内存,那么如果改变的话,会通过引用改变内存中的值吗?通过引用间接改变?
3上面说对象复制的话,复制的是指针,那么一个改变,会影响到另外一个,但是后面说函数也是对象,为什么函数复制以后,可以相互独立,改变一个不影响另外一个?谢谢!
展开
 我来答
死亡冰剑
2015-01-08 · TA获得超过244个赞
知道小有建树答主
回答量:435
采纳率:66%
帮助的人:205万
展开全部
  1. 解析就是解释执行js代码,第一种定义函数方法两次解析 因为函数的本体是字符串

  2. 首先弄清变量和对象的关系,一个变量赋值给另个变量会把变量的值复制一份,引用类型变量也是如此,但是引用的值其实是对象的地址,所以一个引用变量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就没有反应呢?请问?谢谢!
追答
你是赋值不是在操作对象
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式