讓 JavaScript 的 function 支援不同型別的輸入
前言
最近需要 讓 JavaScript 的 function 支援不同型別的輸入,結果發現遽然忘了怎麼做,這次把複習的過程做個紀錄。
內容
範例如下
class MyClass{ constructor(){ this._buffer = []; } addNumber(ele){ if( typeof ele === 'number') this._buffer.push(ele); else if( Array.isArray(ele) ){ for(let i=0;i<ele.length;i++) this._buffer.push( ele[i] ); } else console.log('unsupported type!'); } showContant(){ this._buffer.forEach( function(ele){ console.log(ele); }); } } let a=new MyClass(); a.addNumber(1); a.addNumber([2,3,4,5]); a.showContant();
範例的 addNumber() 可以同時支援 number 與 Array 型別,要注意的是檢查是否是 Array 是用 Array.isArray() ,而非使用 typeof ,還有要注意這裡推入資料時使用的是傳統迴圈,而非使用 forEach() ,這是因為 this 這個變數並不能直接在匿名函式中正常動作。
沒有留言:
張貼留言