函數設置默認值,對象的解構賦值


ES6 里邊,函數設置默認值 ,簡單的不用說了,說一些稍微不是特別簡單的

還是先從簡單的起個頭

function x ({method = 'get'}) {

   console.log(method)

}

 

x()   // TypeofError  因為要求的是默認值是個對象模式的

x({})  // 'get'

 

如果傳入的參數是個對象

functionn x2( {method='get'} = {}) {

   console.log(method)

}

 

x2()  // 'get' 默認不傳的話,傳入的值是個空 {}

 

比較

function x3({x = 0, y = 0} = {}) {console.log(x, y)}

function x4 ({x , y} = {x: 0, y : 0}) {console.log(x, y)}  

 

x3 函數參數的默認值是個空對象,可是設置了對象解構賦值的默認值,

x4 函數參數的默認值是一個有具體屬性的函數, 但是沒有設置對象解構賦值的默認值

 

也就是說 x3 在你不傳參的時候,或者傳參沒有x y 屬性的時候,都可以設置  x y 的默認值

而x4 如果你不傳參,他默認是  {x: 0, y: 0}, 一旦你傳參了,{x: 0, y: 0} 這個默認的設定就沒用了,就默認你傳了 {x , y}

 

所以  x3()  // 0 0 

       x4()  //  0 0

       x3({x: 1, y: 2})  // 1, 2

       x4({x: 1, y: 2})  // 1, 2   

       x3({x: 1})   // 1 ,0

       x4({x: 1})  // 1  undefined

       x3({})  // 0  0

       x4({})   // undefined  undefined

       x3({z: 3})  // 0 0

       x4({z: 3})  // undefined  undefined

   

 


免責聲明!

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



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