美文网首页
十、Function

十、Function

作者: 幸福幸福幸福 | 来源:发表于2017-02-14 22:08 被阅读3次
定义函数的三种方法(等效的):

Function对象有一个length属性,用来记录该函数拥有的参数数量


caller

Function对象还有一个caller属性。该属性对于浏览器来说是非常重要的,caller属性会返回一个调用该函数对象的外层函数引用。也就是说,如果我们在;函数B()中调用函数A(),那么我们只要在A()中调用A.caller,结果就会返回函数B()


在我们希望自己的函数能根据其调用函数做出不同的反应时,该属性会显得非常有用。需要注意的是,如果我们是在全局环境调用A()的(也就是说他没有外层函数),那么A.caller就会返回null。

arguments对象

我们可以通过arguments访问传递函数的所有参数。例如:

    >>> function f(){ return arguments;}
    >>> f(1,2,3)
    [1,2,3]

尽管arguments看上去是一个数组,但它实际上是一个类似于数组的对象。它和数组相似是因为他也包含索引元素和length属性。但相似之处也到此为止了。

另外arguments还有一个callee属性。该属性引用当前被调用的函数对象。也就是说,如果我们所建函数的返回值是arguments.callee,那么该函数会在被调用结束时就返回自身的引用


如上图,我们可以通过arguments.callee属性来实现匿名函数的递归调用

相关文章

网友评论

      本文标题:十、Function

      本文链接:https://www.haomeiwen.com/subject/blcfwttx.html