最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript函數(shù)內(nèi)部屬性和函數(shù)方法實例詳解

 更新時間:2016年03月17日 11:55:41   作者:鱷山維蝦殼集思園  
函數(shù)是由事件驅(qū)動的或者當它被調(diào)用時執(zhí)行的可重復(fù)使用的代碼塊。通過本文給大家介紹JavaScript函數(shù)內(nèi)部屬性和函數(shù)方法,感興趣的朋友一起學(xué)習吧

函數(shù)是由事件驅(qū)動的或者當它被調(diào)用時執(zhí)行的可重復(fù)使用的代碼塊。

函數(shù)是對象,有自己的屬性和方法 。首先通過console下輸出的函數(shù)屬性方法來直觀的看一下:

函數(shù)內(nèi)部屬性只要包括兩個特殊的對象:arguments和this。

函數(shù)屬性包括:length和prototype

函數(shù)方法(非繼承)包括:apply()和call()

繼承而來的函數(shù)方法:bind()、toString()、toLocaleString()、valueOf()

其他的目前不熟,后面再補充

1. 函數(shù)內(nèi)部屬性

在函數(shù)內(nèi)部,有兩個特殊的對象,arguments和this。

arguments屬性

arguments是一個類數(shù)組對象,包含傳入函數(shù)的所有參數(shù),arguments的主要用途是保存函數(shù)參數(shù),但這個對象有一個callee屬性,該屬性是一個指針,指向擁有這個arguments對象的函數(shù),下面是非常經(jīng)典的階乘函數(shù)。

function factorial (num){
if(num <= 1){
return 1;
} else{
return num * factorial(num-1); 
}
}

定義階乘函數(shù)一般都會用到遞歸算法,如上面代碼所示,在有函數(shù)名字,并且函數(shù)名字以后也不會改變的情況下,這種定義沒問題。但是這個函數(shù)的執(zhí)行與函數(shù)名factorial緊緊耦合在了一起,為了消除這種緊密耦合現(xiàn)象(函數(shù)名字改變等情況),可以使用arguments.callee。

function factorial(num){
if(num<=1){
return 1;
} else{
return num * arguments.callee(num-1);
}
}

重寫后的factorial()函數(shù)的函數(shù)體內(nèi),沒有再引用函數(shù)名factorial。這樣即使改變函數(shù)名字,都可以保證正常完成遞歸調(diào)用。例如:

var trueFactorial = factorial; //改變原函數(shù)體的指針(保存位置)
factorial = function (){ //factorial 指向返回0的新函數(shù)
return 0;
}
alert(trueFactorial(5)); //120
alert(factorial(5)); //0

如果,不使用arguments.callee,那么trueFactorial(5)同樣返回0;

this屬性

2. 函數(shù)的方法

每個函數(shù)都包含兩個非繼承而來的方法:apply()和call()。這兩個方法的用途都是在特定的域中調(diào)用函數(shù)(看到這里木有看懂);其真正強大之處在于能夠擴充函數(shù)賴以運行的作用域

關(guān)于JavaScript函數(shù)內(nèi)部屬性和函數(shù)方法的相關(guān)知識,小編就給大家介紹這么多,希望對大家有所幫助!

相關(guān)文章

  • 分享一款超好用的JavaScript 打包壓縮工具

    分享一款超好用的JavaScript 打包壓縮工具

    這篇文章主要介紹了寫一個飛快的 JavaScript 打包壓縮工具,非常好用,本文給大家分享實現(xiàn)思路,需要的朋友可以參考下
    2020-04-04
  • 前端錯誤日志上報的超詳細解決方案

    前端錯誤日志上報的超詳細解決方案

    這篇文章主要介紹了如何使用Node.js搭建一個簡單的錯誤監(jiān)控平臺,用于收集和上報Vue.js項目的運行錯誤,文中通過代碼以及圖文介紹的非常詳細,需要的朋友可以參考下
    2024-11-11
  • 原生js canvas實現(xiàn)簡單貪吃蛇

    原生js canvas實現(xiàn)簡單貪吃蛇

    這篇文章主要為大家詳細介紹了原生js canvas實現(xiàn)簡單貪吃蛇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • JavaScript獲取css行間樣式,內(nèi)連樣式和外鏈樣式的簡單方法

    JavaScript獲取css行間樣式,內(nèi)連樣式和外鏈樣式的簡單方法

    下面小編就為大家?guī)硪黄狫avaScript獲取css行間樣式,內(nèi)連樣式和外鏈樣式的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 詳解ES6 CLASS在微信小程序中的應(yīng)用實例

    詳解ES6 CLASS在微信小程序中的應(yīng)用實例

    這篇文章主要介紹了詳解ES6 CLASS在微信小程序中的應(yīng)用實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-04-04
  • JS實現(xiàn)放大、縮小及拖拽圖片的方法【可兼容IE、火狐】

    JS實現(xiàn)放大、縮小及拖拽圖片的方法【可兼容IE、火狐】

    這篇文章主要介紹了JS實現(xiàn)放大、縮小及拖拽圖片的方法,可兼容IE及火狐等瀏覽器,通過javascript自定義函數(shù)實現(xiàn)針對圖片的放大、縮小及拖拽等功能,涉及javascript動態(tài)操作頁面元素的相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • JavaScript之ECharts用法講解

    JavaScript之ECharts用法講解

    這篇文章主要介紹了JavaScript之ECharts用法講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • JavaScript中常用數(shù)據(jù)處理函數(shù)groupBy的用法詳解

    JavaScript中常用數(shù)據(jù)處理函數(shù)groupBy的用法詳解

    數(shù)據(jù)處理與分析中,對數(shù)據(jù)進行分組是非常常見的功能,不論是實際工作中,還是在面試的場景中應(yīng)用十分廣泛,尤其在函數(shù)式編程中?groupBy?十分常見,下面我們就來學(xué)習一下groupBy的用法吧
    2023-12-12
  • 小程序?qū)崿F(xiàn)長按保存圖片的方法

    小程序?qū)崿F(xiàn)長按保存圖片的方法

    這篇文章主要介紹了小程序?qū)崿F(xiàn)長按保存圖片的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-12-12
  • JavaScript常用內(nèi)置對象用法分析

    JavaScript常用內(nèi)置對象用法分析

    這篇文章主要介紹了JavaScript常用內(nèi)置對象用法,簡單總結(jié)分析了javascript String對象、Date對象、Math類、數(shù)組對象等常見對象的相關(guān)功能、方法與使用注意事項,需要的朋友可以參考下
    2019-07-07

最新評論

兰考县| 汾西县| 澄城县| 昂仁县| 饶阳县| 乐东| 楚雄市| 海兴县| 都兰县| 海晏县| 务川| 灵山县| 枞阳县| 凤城市| 环江| 水城县| 新干县| 五常市| 红桥区| 会理县| 连云港市| 焉耆| 平顶山市| 莱芜市| 特克斯县| 罗甸县| 宝清县| 屏东市| 常德市| 辽阳市| 五华县| 壤塘县| 敦化市| 宣汉县| 建平县| 天长市| 洞口县| 绵阳市| 于田县| 宕昌县| 鄂托克前旗|