关于arguments
生活随笔
收集整理的這篇文章主要介紹了
关于arguments
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
arguments并不屬于很偏的一個知識點,但我之前一直以為它是一個以實參為元素的數組。實際上arguments并不是一個數組,而是一個只具有length屬性的類數組,數組的其它方法它都不具備。可以通過.call()執行silce方法它轉換為數組。 argument有一個重要的參數callee指向當前執行的函數本身,也就是說們通過它可以遞歸執行函數。 例如,使用setTimeout來實現setInterval,可以這樣寫:
setTimeout(function(){//do somethingsetTimeout(arguments.callee,200); },200);復制代碼同時,callee也可以接收參數:
function add(){let num = arguments[0]num++console.log(num)if(num<10){arguments.callee(num)} } add(0)//1,2,3,4,...,10 復制代碼而caller則是指向當前運行函數的調用者:
function handleAdd(){let num = arguments[0]add = function (){num ++console.log(num)console.log(arguments.callee.caller)//function handlerAddconsole.log(arguments.callee.caller==add.caller)//true }add() } handleAdd(0) 復制代碼轉載于:https://juejin.im/post/5cbb1c9e6fb9a0688f376776
總結
以上是生活随笔為你收集整理的关于arguments的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cloudstack4.11 cento
- 下一篇: Unity3D+VR的实现