js模擬實現過載以及預設引數

2021-08-08 22:39:18 字數 661 閱讀 4216

眾所周知,js是函式不支援過載和預設引數的,但是我們可以使用一些其他方法來模擬這個方法的實現。

首先看一下過載的定義:函式名相同,函式的引數列表不同(包括引數個數和引數型別),至於返回型別可同可不同。

以及預設引數的定義:預設引數指的是當函式呼叫中省略了實參時自動使用的乙個值。

那麼如何實現這兩個功能呢,乙個很簡單的方法就是使用arguments來進行模擬。

下面先說實現過載的方法:

function overload()

else

} else

}

接下來是實現預設引數的方法:

function defaultarg()
下面進行一下測試:

//過載測試

overload();//null

overload("hello ");//hello

overload("hello ","world");//hello world

//預設引數測試

defaultarg();//hello world

defaultarg("你好 ");//你好 world

defaultarg("你好 ","世界");//你好 世界

js 模擬實現EventBus

文章原文 eventbus 幾個常用方法如下 這裡用map 儲存 eventbus 的資料,map 的模擬實現 可以看 示例 如下 let eb new eventbus eb.on event1 test1 eb.emit event1 第一次 eb.off event1 test1 eb.emi...

模擬實現call apply以及bind

思路 函式定義在 因為是對全域性有效的,所以定義至function的原型物件中 引數接收引數?繫結函式被呼叫接收第二個以及之後的引數 如何顯式繫結this 如果被呼叫的函式,被指定物件所擁有,那麼函式內部的this,應該指向的是該物件 function.prototype.bind function...

js模擬實現雜湊表

在演算法中,尤其是有關陣列的演算法中,雜湊表的使用可以很好的解決問題,所以這篇文章會記錄一些有關js實現雜湊表並給出解決實際問題的例子。說明 這篇部落格所寫並不是真正意義的雜湊表,只是與雜湊表的使用有相似之處。屬性的列舉 var person for var prop in person 輸出 即對...