变量复制的问题

变量复制的问题

案例一

function add(x,y){return x+y;}

add1=add;

add=null;

add1(2,3); //5

案例二

var obj1 = new Object(); 

var obj2 = obj1; 

obj1.name = "Nicholas"; 

alert(obj2.name); //"Nicholas"

老师我想问一下将函数赋值给变量的时候,和将对象赋值不一样,不都是指针吗,对于案例一的结果不是很理解


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕言 2020-02-05 13:39:27

同学你好,add1=add;这步操作,是add把地址赋值给了add1,现在两者指向的是同一个地址。

add=null;这步操作,是改变了add的指向,也就是add不指向这个地址了,但是不会影响add1的指向。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

好帮手慕言 2020-02-05 10:52:35

同学你好,关于同学的疑问,解答如下:

1、将函数赋值给变量,将对象赋值给变量,两者是一样的,都是指针。

2、可以参考下方理解:

(1)声明了一个add函数,用来做加法运算。

(2)将add这个函数,赋值给了add1,add1可以进行加法计算了

(3)将null赋值给add,add现在不是一个函数了,而是null。

(4)给add1传入参数2和3,返回的是5。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 既然是指针的话,add1和add指向同一个地址,把add变为null以后,为什么不会影响add1呢,它不应该也成为null吗
    2020-02-05 11:01:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师