如何實(shí)現(xiàn)JS中的重載
標(biāo)簽:
JavaScript
1.JS由于不属于纯面向对象的语言,没有真正的重载,但是可以通过另外一些方法实现
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
纯面向对象语言实现重载的方式:(在javaScript上模拟展示)
<script type="text/javascript"> /* 函数名相同的情况下: 1、参数个数相同,类型不同,可以自动的区分函数 2、参数个数不同,也可以自动区分函数 */ function getData() { alert("将返回所有的数据"); } function getData(num) { alert("返回前" + num + "条数据"); } function getData(num1, num2) { alert("返回前" + num1 + " - " + num2 + "条数据"); } function getData(num, type) { } getData(20, 100); //调用时,根据参数或者类型的不同而进行调用</script>
JS实现重载的方式:
<script type="text/javascript"> function getDataAll() { alert("将返回所有的数据"); } function getDataTop(num) { alert("返回前" + num + "条数据"); } function getDataLimit(num1, num2) { alert("返回前" + num1 + " - " + num2 + "条数据"); } function getDataByType(type) { alert("将返回" + type + "类型的所有数据"); } function getdata() { var len = arguments.length; //通过arguments实现,判断参数列表判断调用哪个函数 if (!len) { getDataAll(); } else if (len == 1) { if (typeof arguments[0] == "number") { getDataTop.apply(this, arguments); } else { getDataByType.apply(this, arguments); } } else if (len == 2) { getDataLimit.apply(this, arguments); } } getdata("Array"); getdata(20,100);</script>
作者:饥人谷_米弥轮
链接:https://www.jianshu.com/p/a6aed612a64a
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦