欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript中的arguments與重載介紹

 更新時(shí)間:2015年03月15日 12:10:29   投稿:junjie  
這篇文章主要介紹了Javascript中的arguments與重載介紹,本文講解了Javscript 重載、Javascript arguments不是一個(gè)數(shù)組等內(nèi)容,需要的朋友可以參考下

因?yàn)檎Z言上的設(shè)計(jì)錯(cuò)誤,arguments可以被當(dāng)成一個(gè)數(shù)組。

復(fù)制代碼 代碼如下:

function zero () {
    console.log(arguments[0]);
}

也會(huì)有
復(fù)制代碼 代碼如下:

function zero () {
  for(var i=0;i<arguments.length;i++){
     console.log(arguments[i]);
  }
}

它利用了Javascript的一個(gè)事實(shí),即Javasc

而這里的arguments變量給實(shí)參提供了一個(gè)類似數(shù)組的接口。因?yàn)檫@里的arguments的可變參數(shù),我們可以利用這個(gè)有意思的東西來做一些有意思的事,比如重載。

Javscript 重載

stackvoerflow上有一個(gè)關(guān)于重載的問題,于是有了第一個(gè)答案

復(fù)制代碼 代碼如下:

if (typeof friend === "undefined") {

} else {

}

還有一個(gè)答案則是

復(fù)制代碼 代碼如下:

switch (arguments.length) {
case 0:
    //Probably error
    break;
case 1:
    //Do something
    break;
case 2:
default: //Fall through to handle case of more parameters
    //Do something else
    break;
}

只是這種方式真的不好看,難道我們的函數(shù)最后要變成這樣子的?

復(fù)制代碼 代碼如下:

function zero1 (){
    console.log('arguments 1')
};
function zero2 (){
    console.log('arguments 2')
};
function zero () {
  if(arguments.length == 1){
    zero1();
  } else{
    zero2();
  }
}

真的一點(diǎn)都不好看,即使我們換個(gè)switch..case,也不好看啊。

Javascript arguments不是一個(gè)數(shù)組

arguments不是向我們看到的那樣一直是一個(gè)數(shù)組,有時(shí)候可能不是。

復(fù)制代碼 代碼如下:

function hello(){
    console.log(typeof arguments);
}

這里arguments的類型是一個(gè)對(duì)象,雖然數(shù)組的類型也是一個(gè)對(duì)象,雖然我們可以將之轉(zhuǎn)換為一個(gè)數(shù)組
復(fù)制代碼 代碼如下:

var args = Array.prototype.slice.call(arguments);

但是這也表明了這不是一個(gè)數(shù)組,它擁有的只有Array的唯一一個(gè)屬性,即length。除此還有

arguments.callee

Reference to the currently executing function.

arguments.caller

Reference to the function that invoked the currently executing function.

arguments.length

Reference to the number of arguments passed to the function.

相關(guān)文章

  • 使用js獲取圖片原始尺寸

    使用js獲取圖片原始尺寸

    本文給大家推薦的是一個(gè)使用js獲取圖片的原始尺寸的例子,從本人項(xiàng)目中摳出來的,這里奉獻(xiàn)給大家,有需要的直接拿走。
    2014-12-12
  • 關(guān)于TypeScript模塊導(dǎo)入的那些事

    關(guān)于TypeScript模塊導(dǎo)入的那些事

    Typescrit的模塊機(jī)制與es6的模塊基本類似,也提供了轉(zhuǎn)換為amd,es6,umd,commonjs,system的轉(zhuǎn)換,下面這篇文章就來給大家詳細(xì)介紹了關(guān)于TypeScript模塊導(dǎo)入的那些事,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-06-06
  • 如何在CocosCreator中使用http和WebSocket

    如何在CocosCreator中使用http和WebSocket

    這篇文章主要介紹了在Cocos Creator中使用的Http和WebSocket,對(duì)websocket感興趣的同學(xué),一定要看下
    2021-04-04
  • Some tips of wmi scripting in jscript (1)

    Some tips of wmi scripting in jscript (1)

    Some tips of wmi scripting in jscript (1)...
    2007-04-04
  • JavaScript 處理Iframe自適應(yīng)高度(同或不同域名下)

    JavaScript 處理Iframe自適應(yīng)高度(同或不同域名下)

    Iframe自適應(yīng)高度一直都備受關(guān)注,接下來為大家介紹下同域名下Iframe自適應(yīng)高度的處理以及跨域時(shí)Iframe高度自適應(yīng),感興趣的朋友可以參考下哈
    2013-03-03
  • JS動(dòng)態(tài)給對(duì)象添加事件的簡(jiǎn)單方法

    JS動(dòng)態(tài)給對(duì)象添加事件的簡(jiǎn)單方法

    下面小編就為大家?guī)硪黄狫S動(dòng)態(tài)給對(duì)象添加事件的簡(jiǎn)單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • layui的form.on的使用示例詳解

    layui的form.on的使用示例詳解

    這篇文章主要介紹了layui的form.on的使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 判斷是否安裝flash player及當(dāng)前版本的JS代碼

    判斷是否安裝flash player及當(dāng)前版本的JS代碼

    本文為大家講述下如何使用jsJS判斷是否安裝flash player及版本,下面的處理代碼或許對(duì)大家有所幫助,感興趣的朋友可以參考下,希望對(duì)大家有所幫助
    2013-08-08
  • javascript中拼接HTML字符串的最快、最好的方法

    javascript中拼接HTML字符串的最快、最好的方法

    這篇文章主要介紹了javascript中拼接HTML字符串的最快、最好的方法,本文共計(jì)介紹了3種方法,并對(duì)3個(gè)各自做了瀏覽器速度測(cè)試,需要的朋友可以參考下
    2014-06-06
  • 不同js異步函數(shù)同步的實(shí)現(xiàn)方法

    不同js異步函數(shù)同步的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄煌琷s異步函數(shù)同步的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05

最新評(píng)論