讓 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 這個變數並不能直接在匿名函式中正常動作。
沒有留言:
張貼留言