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

淺談javascript中的Function和Arguments

 更新時(shí)間:2016年08月30日 11:14:04   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇淺談javascript中的Function和Arguments。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

javascript的Function

屬性:

1、Arguments對(duì)象

2、caller

 對(duì)調(diào)用單前函數(shù)的Function的引用,如果是頂層代碼調(diào)用,
 則返回null(firefox返回undefined)。
 注:只有在代碼執(zhí)行時(shí)才有意義

3、length

 聲明函數(shù)是指定的命名參數(shù)的個(gè)數(shù)(函數(shù)定義是,定義參數(shù)的個(gè)數(shù))

4、prototype

 一個(gè)對(duì)象,用于構(gòu)造函數(shù),這個(gè)對(duì)象定義的屬性和方法
 由構(gòu)造函數(shù)創(chuàng)建的所有對(duì)象共享。

方法:

 applay() --> applay(this,[])
 call() --> call(this,可變參數(shù))
 toString()

javascript的Arguments對(duì)象

Arguments對(duì)象只在函數(shù)體內(nèi)定義,他是一個(gè)類(lèi)數(shù)組(是對(duì)象不是數(shù)組,只是有數(shù)組的一些特性)。

說(shuō)明:

當(dāng)一個(gè)函數(shù)被調(diào)用的時(shí)候,會(huì)為該函數(shù)創(chuàng)建一個(gè)Arguments對(duì)象,
局部變量arguments會(huì)自動(dòng)初始化并引用那個(gè)Arguments對(duì)象(arguments是Arguments對(duì)象的引用)

該對(duì)象的屬性:

1、callee

對(duì)當(dāng)前正在執(zhí)行的函數(shù)的引用

2、length

傳遞給函數(shù)參數(shù)的個(gè)數(shù)(實(shí)際傳遞給函數(shù)參數(shù)的個(gè)數(shù))

arguments特性

arguments對(duì)象不能顯式創(chuàng)建,arguments對(duì)象只有函數(shù)開(kāi)始時(shí)才可用。函數(shù)的 arguments 對(duì)象并不是一個(gè)數(shù)組,訪問(wèn)單個(gè)參數(shù)的方式與訪問(wèn)數(shù)組元素的方式相同。索引 n 實(shí)際上是 arguments 對(duì)象的 0…n 屬性的其中一個(gè)參數(shù)。

在javascript中,不需要明確指出參數(shù)名,就能訪問(wèn)它們。如:

function hi(){
if(arguments[0]=="andy"){
   return;
}
alert(arguments[0]);

arguments的length屬性

含義

返回調(diào)用程序傳遞給函數(shù)的實(shí)際參數(shù)數(shù)目。

用法

[function.]arguments.length

其中可選項(xiàng) function 參數(shù)是當(dāng)前正在執(zhí)行的 Function 對(duì)象的名稱(chēng)。

說(shuō)明

當(dāng) Function 對(duì)象開(kāi)始執(zhí)行時(shí),腳本引擎將 arguments 對(duì)象的 length 屬性初始化為傳遞給該函數(shù)的實(shí)際參數(shù)數(shù)目。

js不會(huì)主動(dòng)為你判斷你到底給函數(shù)傳了多少個(gè)參數(shù),如果你多傳了,多余的部分就沒(méi)有被使用,如果你少傳了,那么沒(méi)傳的參數(shù)值就是undefined

所以我們可以借助arguments的length屬性來(lái)檢測(cè)調(diào)用函數(shù)時(shí)是否使用了正確數(shù)目的實(shí)際參數(shù),因?yàn)閖avascript是不會(huì)為你做這些事的

arguments 的 0...n 屬性

含義

返回一個(gè) arguments 對(duì)象中的各個(gè)參數(shù)的實(shí)際值,相應(yīng)的值是由一個(gè)正在執(zhí)行的函數(shù)的 arguments屬性返回的。

用法

[function.]arguments[[0|1|2|...|n]]

參數(shù)

function

可選項(xiàng)。當(dāng)前正在執(zhí)行的 Function 對(duì)象的名稱(chēng)。

0, 1, 2, …, n

必選項(xiàng)。0 到 n 范圍內(nèi)的非負(fù)整數(shù),其中 0 代表第一個(gè)參數(shù)而 n 代表最后一個(gè)參數(shù)。最后參數(shù) n 的值為 arguments.length-1

說(shuō)明

0 . . . n 屬性所返回的值就是傳遞給正在執(zhí)行的函數(shù)的實(shí)際值。盡管實(shí)際上并不是一個(gè)參數(shù)數(shù)組,您還是可以按照與訪問(wèn)數(shù)組元素的方法相同的方式訪問(wèn)組成 arguments 對(duì)象的各個(gè)參數(shù)。

示例

下面的例子演示了 arguments 對(duì)象的 0 . . . n 屬性的用法

 

function ArgTest(){
  var s = "";
  s += "The individual arguments are: "
  for (n=0; n< arguments.length; n++){
   s += ArgTest.arguments[n];
   s += " ";
  }
  return(s);
}
print(ArgTest(1, 2, "hello", new Date()));

 arguments的callee屬性

含義

表示對(duì)函數(shù)對(duì)象本身的引用,也就是所指定的 Function 對(duì)象的正文,這有利于實(shí)現(xiàn)無(wú)名函數(shù)的遞歸或者保證函數(shù)的封裝性。

用法

[function.]arguments.callee

可選項(xiàng) function 參數(shù)是當(dāng)前正在執(zhí)行的 Function 對(duì)象的名稱(chēng)。

說(shuō)明
callee 屬性是 arguments 對(duì)象的一個(gè)成員,僅當(dāng)相關(guān)函數(shù)正在執(zhí)行時(shí)才可用。

callee 屬性的初始值就是正被執(zhí)行的 Function 對(duì)象。這允許匿名的遞歸函數(shù)。

實(shí)例:

用遞歸來(lái)計(jì)算1到n的自然數(shù)之和:

 

<script>
 
  var sum=function(n){
   if(1==n) {
    return 1;
   } else {
    return n + arguments.callee(n-1);
   }
  }
  alert(sum(100));
</script>

對(duì)函數(shù)Function原型prototype的一下說(shuō)明:

當(dāng)通過(guò)構(gòu)造函數(shù)初始化一個(gè)對(duì)象的時(shí)候,

new關(guān)鍵字通過(guò)調(diào)用構(gòu)造函數(shù)初始化這個(gè)對(duì)象,并把新的對(duì)象 作為this關(guān)鍵字的值 來(lái)傳遞,

與此同時(shí),new關(guān)鍵字還設(shè)置了這個(gè)對(duì)象的原型,一個(gè)對(duì)象的原型就是它的構(gòu)造函數(shù)的prototype屬性的值

(例如:a = new Date(),a對(duì)象的原型就是Date.prototype)

所有的函數(shù)都有一個(gè)prototype屬性,當(dāng)這個(gè)函數(shù)【被定義】的時(shí)候,prototype屬性會(huì)自動(dòng)創(chuàng)建和初始化。

prototype屬性的初始化值是一個(gè)對(duì)象,并且這個(gè)對(duì)象只有一個(gè)屬性,這個(gè)屬性是constructor,

它指回到和原型相關(guān)聯(lián)的那個(gè)構(gòu)造函數(shù)。

以上這篇淺談javascript中的Function和Arguments就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JS代碼編譯器Monaco使用方法

    JS代碼編譯器Monaco使用方法

    Monaco是微軟家的,支持的語(yǔ)言很多,還有縮略地圖,有時(shí)候提示不好用然后包體很大的問(wèn)題,但是這是極少數(shù),今天小編給大家分享JS編譯器Monaco使用教程,感興趣的朋友一起看看吧
    2021-06-06
  • JS實(shí)現(xiàn)九宮格拼圖游戲

    JS實(shí)現(xiàn)九宮格拼圖游戲

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)九宮格拼圖游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • script不刷新頁(yè)面的聯(lián)動(dòng)前后代碼

    script不刷新頁(yè)面的聯(lián)動(dòng)前后代碼

    如何實(shí)現(xiàn)script不刷新頁(yè)面的聯(lián)動(dòng),在本文有個(gè)不錯(cuò)的示例或許對(duì)大家有所幫助
    2013-09-09
  • 微信小程序radio組件使用詳解

    微信小程序radio組件使用詳解

    這篇文章主要為大家詳細(xì)介紹了微信小程序radio組件的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 實(shí)例詳解JavaScript中setTimeout函數(shù)的執(zhí)行順序

    實(shí)例詳解JavaScript中setTimeout函數(shù)的執(zhí)行順序

    關(guān)于javascript的運(yùn)行機(jī)制大家都應(yīng)該有所了解了吧,其實(shí)javascript是一個(gè)單線(xiàn)程的機(jī)制,但是因?yàn)殛?duì)列的關(guān)系它的表現(xiàn)會(huì)讓我們感覺(jué)是一個(gè)多線(xiàn)程的錯(cuò)覺(jué)。下面這篇文章通過(guò)實(shí)例主要給大家介紹了關(guān)于JavaScript中setTimeout函數(shù)執(zhí)行順序的相關(guān)資料,需要的朋友可以參考下。
    2017-07-07
  • 關(guān)于JavaScript數(shù)組對(duì)象去重的幾種方法

    關(guān)于JavaScript數(shù)組對(duì)象去重的幾種方法

    這篇文章主要介紹了關(guān)于JavaScript數(shù)組對(duì)象去重的幾種方法,不管是map對(duì)象的特性還是reduce方法都是很好用的去重方法,需要的朋友可以參考下
    2023-04-04
  • 用Javascript判斷圖片是否存在,不存在則顯示默認(rèn)圖片的代碼

    用Javascript判斷圖片是否存在,不存在則顯示默認(rèn)圖片的代碼

    用Javascript判斷圖片是否存在,不存在則顯示默認(rèn)圖片的代碼,需要的朋友可以參考下。
    2007-03-03
  • Javascript 判斷客戶(hù)端瀏覽器類(lèi)型代碼

    Javascript 判斷客戶(hù)端瀏覽器類(lèi)型代碼

    有時(shí)候一些js代碼并不希望在別的瀏覽器下運(yùn)行,就需要事先判斷一下,方便下面的操作。
    2010-03-03
  • JavaScript將一個(gè)數(shù)組插入到另一個(gè)數(shù)組的方法

    JavaScript將一個(gè)數(shù)組插入到另一個(gè)數(shù)組的方法

    這篇文章主要介紹了JavaScript將一個(gè)數(shù)組插入到另一個(gè)數(shù)組的方法,涉及javascript中Array.prototype.push.apply方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • JS OffsetParent屬性深入解析

    JS OffsetParent屬性深入解析

    本篇文章要是對(duì)JS中的OffsetParent屬性進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所 幫助
    2014-01-01

最新評(píng)論