为了账号安全,请及时绑定邮箱和手机立即绑定

关于null的疑问

/ 猿问

关于null的疑问

天天向上学 2019-03-14 21:23:09
remove(fn) {
    let pond =this.pond;
    pond.forEach((item,index)=>{
       
        if(item===fn){
            pond[index]=null;
            //item=null;
        }
    })
};

遍历数组里的方法,想把满足条件设置成空, 请问为什么

pond[index]=null 可以生效,而item=null;就不能用呢?


查看完整描述

2 回答

已采纳
?
橋本奈奈未

因为item其实只是一个变量而已。

就好比

function fn() {}
var f = fn;
f = null; // 你觉得这时候fn会是null吗?


查看完整回答
反对 回复 2019-03-15
?
pardon110

前者赋值实质是变更了引用类型变量pond(数组)数据内容,后者仅仅只是函数体内一个临时值类型变量赋值,在函数调用结束就释放了。注意区分值类型与引用类型操作,若有java或其它语言面向对象的编程基础就不难理解了。看看下面这段代码

var a = [];
var c = 3
function test1(c){
c = 2
a.push(c)
}
test1(3)      // 调用完毕值类型c=2释放
console.log(c,a) // 输出3,[2]


查看完整回答
反对 回复 2019-03-15

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信