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

JS函數(shù)內部屬性之a(chǎn)rguments和this實例解析

 更新時間:2018年10月07日 09:48:33   作者:子閑  
在函數(shù)內部,有兩個特殊的對象:arguments和this。這篇文章主要介紹了函數(shù)內部屬性之a(chǎn)rguments和this ,需要的朋友可以參考下

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

1、arguments

  arguments是一個類數(shù)組對象。包含著傳入函數(shù)中的所有參數(shù)。但這個對象還有一個名叫callee的屬性,該屬性是一個指針,指向擁有這個arguments對象的函數(shù)。

  經(jīng)典案例:階乘函數(shù)

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

定義階乘函數(shù)一般都要用到遞歸算法,如上所示,但你會發(fā)現(xiàn),這個函數(shù)的執(zhí)行與函數(shù)名factorial緊緊耦合在了一起,為解決這個問題,我們可以使用arguments.callee。

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

我們重寫之后,factorial()函數(shù)里沒有引用函數(shù)名factorial。這樣無論引用函數(shù)時使用的是什么名字,都可以保證正常完成遞歸調用。例如:

var trueFac = factorial;

factorial = function(){
  return 0;
}

console.log(trueFac(5)); // 120
console.log(factorial(5)); // 0

2、this

函數(shù)內部的另一個對象是this,this引用的是函數(shù)執(zhí)行的環(huán)境對象(當在網(wǎng)頁的全局作用域中調用函數(shù)時,this對象引用的就是window)。

window.color = "red";
var o = { color: "blue" };

function sayColor(){
  alert(this.color);
}

sayColor(); // "red"

o.sayColor = sayColor;
o.sayColor(); // "blue"

在上面這個函數(shù)sayColor()是在全局作用域中定義的,它引用了this對象。由于在調用函數(shù)之前,this的值并不確定,因此this可能會在代碼執(zhí)行過程中引用不同的對象。

當在全局作用域中調用sayColor()時,this引用的時全局對象window;換句話說,對this.color求值會轉換成對window.color求值,于是結果就返回了"red"。而當把這個函數(shù)賦給對象o并調用o.sayColor()時,this引用的是對象o,因此對this.color求值會轉換成對o.color求值,所以返回“blue”。

函數(shù)的名字僅僅是一個包含指針的變量。

總結

以上所述是小編給大家介紹的JS函數(shù)內部屬性之a(chǎn)rguments和this實例解析,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

相關文章

  • javascript oop開發(fā)滑動(slide)菜單控件

    javascript oop開發(fā)滑動(slide)菜單控件

    這里因為是演示所以讓HTML CSS盡量的簡化,另外使用jquery的 fn.slideUp fn.slideDown 實現(xiàn)起來會更容易不過我作為一個專業(yè)的開發(fā)者多了解些原生的JS對技術的提高還是很有幫助。
    2010-08-08
  • 詳解CocosCreator項目結構機制

    詳解CocosCreator項目結構機制

    這篇文章主要介紹了詳解CocosCreator項目結構機制,只有了解這些機制后,才能更好的進行項目開發(fā),避免潛在錯誤,并且快速的除錯
    2021-04-04
  • JavaScript中保留小數(shù)點后N位方法總結

    JavaScript中保留小數(shù)點后N位方法總結

    這篇文章主要為大家詳細介紹了JavaScript中保留小數(shù)點后N位的幾個常用方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-06-06
  • JS前端解壓zip的方法和技巧分享

    JS前端解壓zip的方法和技巧分享

    這篇文章主要介紹了JS前端解壓zip的方法和技巧,業(yè)務中有時候需要獲取某個 zip 壓縮包內的文件內容展示到前端,在 zip 包體積不是那么大的時候并且不涉及壓縮包解密的時候,可以考慮純前端方案,需要的朋友可以參考下
    2024-03-03
  • 基于JavaScript的數(shù)據(jù)結構隊列動畫實現(xiàn)示例解析

    基于JavaScript的數(shù)據(jù)結構隊列動畫實現(xiàn)示例解析

    這篇文章主要介紹了基于JavaScript的數(shù)據(jù)結構隊列動畫實現(xiàn)示例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 去掉gridPanel表頭全選框的小例子

    去掉gridPanel表頭全選框的小例子

    這篇文章介紹了去掉gridPanel表頭全選框的小例子,有需要的朋友可以參考一下
    2013-07-07
  • three.js安裝和使用完整步驟

    three.js安裝和使用完整步驟

    Three.js是一個JavaScript庫,用于在Web瀏覽器中創(chuàng)建3D Web圖形,下面這篇文章主要給大家介紹了關于three.js安裝和使用的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • 微信小程序MoxB實現(xiàn)全局狀態(tài)管理流程詳解

    微信小程序MoxB實現(xiàn)全局狀態(tài)管理流程詳解

    這篇文章主要介紹了微信小程序使用MoxB實現(xiàn)全局狀態(tài)管理方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-11-11
  • js中substring使用示例詳解

    js中substring使用示例詳解

    substring是從中截取一段字符串,在組成一個新的字符串,這篇文章主要介紹了js中substring使用示例小結,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • event對象獲取方法總結在google瀏覽器下測試

    event對象獲取方法總結在google瀏覽器下測試

    Event 對象代表事件的狀態(tài),比如事件在其中發(fā)生的元素、鍵盤按鍵的狀態(tài)、鼠標的位置、鼠標按鈕的狀態(tài),Event對象的獲取方法如下,感興趣的朋友可以參考下
    2013-11-11

最新評論

宣威市| 潮安县| 灯塔市| 青铜峡市| 县级市| 邵东县| 赣州市| 松溪县| 于都县| 白山市| 盖州市| 峨边| 和田县| 溧水县| 城市| 岑巩县| 鹤峰县| 汤阴县| 同江市| 柞水县| 仲巴县| 黑山县| 日喀则市| 微山县| 澄城县| 澜沧| 台前县| 营山县| 东光县| 蓬安县| 西贡区| 楚雄市| 伊宁市| 固阳县| 永修县| 临桂县| 垫江县| 长阳| 新绛县| 仪征市| 静安区|