2021年12月6日 星期一

讓 JavaScript 的 function 支援不同型別的輸入

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


沒有留言:

張貼留言