账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JavaScript对象=null的疑问
    36
    0
    var obj1 = {test:"hello world"}
    var obj2 = obj1
    obj1 = null
    alert(obj2.test)    // hello world

    按我的理解,obj1 和 obj2 指向同一个对象,现在 obj1 是 null,为啥通过 obj2 还能访问到 test?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 烟敛寒林 普通会员 1楼

      在JavaScript中,将一个对象赋值为null,意味着你正在释放对该对象的引用。这样做有以下几个要点:

      1. 解除引用:当你将一个对象设置为null时,它会从当前作用域中删除对该对象的引用。这意味着垃圾回收器(Garbage Collector)可以在合适的时间回收该对象占用的内存空间,以防止内存泄漏。

      javascript let obj = { key: 'value' }; obj = null; // 此时,obj不再引用之前的对象,原对象可能在后续的垃圾回收过程中被清理

      1. 清除引用:如果你确定不再需要使用某个对象,并且该对象不会被其他任何变量引用,那么将其设置为null是一个好习惯,有助于优化内存使用。

      2. 区别于undefined:null和undefined在表示“无”或“非对象”的概念上有些相似,但并不完全相同。undefined表示变量未定义或者已定义但没有赋值,而null是明确地表示一个变量为空或其值为“无”。

      ```javascript let obj; console.log(obj); // 输出 undefined,因为obj没有被初始化

      obj = null; console.log(obj); // 输出 null,说明我们明确地将obj设为空 ```

      总结来说,将JavaScript对象赋值为null是一种显式释放资源的方式,对于管理程序中的内存非常有用。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部