es6 函數默認參數-對象


注意參數是對象,並且等號左邊是解構后的變量,用等號賦值,右邊是參數,也就是正常的變量,所以對象用冒號給值

案例1: 是對解構后的變量給默認值

function move({x = 0, y = 0} = {}) {
   return [x, y];
}
//沒什么好說的
console.log(move({x: 3, y: 8}));// [3, 8]

//參數直有一個x,所以解構后沒有y則使用默認
console.log(move({x: 3}));// [3, 0]

//傳遞了一個空對象參數,但是解構出來x,y都沒有,則使用默認值
console.log(move({}));// [0, 0]

//無參數,會使用參數的默認值也就是{},解析后x,y都沒有,則使用默認值
console.log(move());// [0, 0]

案例2: 參數給默認值

function move({x, y} = { x: 0, y: 0 }) {
    return [x, y];
 }
 
 //沒什么好說的
 console.log(move({x: 3, y: 8})); // [3, 8]
 
 //傳遞了一個有x的對象則不使用默認參數{x:0,y:0},但是解構出來后沒有y,並且也沒有默認值,所以y是undefined
 console.log(move({x: 3})); // [3, undefined]
 
 //參數傳遞了一個空對象,不使用默認參數。但是沒有解構出x,y 。都為undefined
 console.log(move({})); // [undefined, undefined]
 
 //沒有傳遞參數,所以使用默認參數{x:0,y:0}。 都能解構出來,所以都為0
 console.log(move()); // [0, 0]


免責聲明!

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



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