对象作为函数参数可能会导致的问题
生活随笔
收集整理的這篇文章主要介紹了
对象作为函数参数可能会导致的问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
函數(shù)參數(shù)是對(duì)象發(fā)生什么問題:
新手很容易跌倒的坑
function fn(person) {person.age = 26 // 修改了原對(duì)象的值person = {name: 'Jhon',age: 30}return person }const person = {name : 'Tom',age: 25 }const person2 = fn(person)console.log(person, person2)// out put => { name: 'Tom', age: 26 } { name: 'Jhon', age: 30 }分析:
- 明確: 函數(shù)傳參是地址
- 模擬瀏覽器: 聲明了一個(gè)函數(shù),生命力一個(gè)對(duì)象 定義了一個(gè)常量:person2 = fn(person)
- 從右向左運(yùn)算 fn(person) => person是一個(gè)對(duì)象,對(duì)象便開辟了一塊存儲(chǔ)空間,放在堆中,然后存入了name: Tom,age=50 將person 地址為 &0x763; 傳入fn
- 順序執(zhí)行fn 首先 0x763 => age =26;
- 再掛載一個(gè) person 地址為 &0x7E; 然后初始化,然后返回。
- 拿 person2 接到了返回值,然后打印 其結(jié)果為{ name: ‘Tom’, age: 26 } { name: ‘Jhon’, age: 30 }
總結(jié)
以上是生活随笔為你收集整理的对象作为函数参数可能会导致的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能WiFi产品宣传标语文案30句
- 下一篇: steam卡牌有什么用 总是打不开ste