美文网首页
forEach等函数

forEach等函数

作者: c菜鸟 | 来源:发表于2018-04-07 18:31 被阅读0次

    如果数组成员是基本类型成员

    var arr = [1,2,3,4,5,6];
    arr.forEach(function(num){
     if(index == 2) index = 666;
    })
    console.log(arr); //1,2,3,4,5,6

    然后你会发现打印出的数组和原来一样

    如果数组的成员是引用类型

    var arr = [
    {name: 'lzh', age: 20},
    {name: 'xt', age: 30},
    {name: 'haha', age: 40}
    ];
    arr.forEach(function(obj){
    if(obj.name == 'haha') obj.age =666;
    })
    console.log(arr);
    //[ { name: 'lzh', age: 20 },
    { name: 'xt', age: 30 },
    { name: 'haha', age: 666 } ]

    你会发现结果改变了,如果我直接改变对象而不是对象的属性,我们再来看一下会发生什么

    var arr = [
    {name: 'lzh', age: 20},
    {name: 'xt', age: 30},
    {name: 'haha', age: 40}
    ];
    arr.forEach(function(obj){
    if(obj.name == 'haha') obj = {name:'hello', age:50};
    })
    console.log(arr);
    //[ { name: 'lzh', age: 20 },
    { name: 'xt', age: 30 },
    { name: 'haha', age: 40 } ]

    你会发现你直接改变对象但是数组并没有改变,从这我们可以看出只要数组成员的地址是不能改变的,我们给基本类型和引用类型本身赋值,本质上来说都是地址改变了,我们改变属性你会发现,我们可以改变

    相关文章

      网友评论

          本文标题:forEach等函数

          本文链接:https://www.haomeiwen.com/subject/nugyhftx.html