js里數組名的直接賦值


const numbers = [...this.state.numbers];
    numbers.push(numbers[numbers.length-1] + 1);
    console.log(numbers === this.state.numbers);

這樣子輸出的是false

    const numbers = this.state.numbers;
   numbers.push(numbers[numbers.length-1] + 1);
    console.log(numbers === this.state.numbers);

但是這樣輸出則是true了

為什么呢?

原因很簡單,這種賦值只是直接把this.state.numbers的數組指針直接給了numbers,使得numbers可以直接操作數組里面的數據

const numbers = this.state.numbers;
    //const numbers = [...this.state.numbers];
    numbers.push(numbers[numbers.length-1] + 1);
    console.log('state' + this.state.numbers);
    console.log('numbers' + numbers);

這樣子輸出兩個數組里的內容是完全一樣的,所以就造成了上面的結果了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM