Web前端开发arguments详解

微信服务号前端开发教程
h5微信公众号前端开发教程
微信公众号前端怎么开发

学习的最佳方式就是学会问问题。
1.arguments是什么?
答:是一个长的很像数组的对象。
2.arguments内容是什么?
答:是函数运行时的实参列表。
javascript 代码

;(function(d, e, f) {
    // alert(typeof arguments);
    console.log(arguments)
    console.log(arguments[3])
    arguments[0] = ‘china’
    console.log(d)
    console.log(arguments.length)
    //真正收到的实参个数,在多态或函数重载里可以用到
})(‘hello’, ‘world’, ‘!’, ‘haha’)
//arguments收集了所有的实参,即使没有与之相对应的形参。

arguments属性在这里详细讲下callee属性,其他不在累述。
arguments详解自己可百度百科下。
arguments.callee属性代表当前运行的函数。
javascript 代码

;(function(d, e, f) {
    console.log(arguments.callee)
})(‘hello’, ‘world’, ‘!’)

思考:使用递归计算1到100的和,但是不可以调用函数自身,试考虑使用arguments.callee
答:自己先想,然后在看下面的答案代码。
javascript 代码

alert(
    (function t(n) {
        if (n == 1) {
            return 1
        } else {
            return n + arguments.callee(n – 1)
        }
    })(100),
)

附注:
函数运行期内,关键的三个对象,
AO –>本函数AO上没有某属性,则继续去外层的AO上寻找,直到全局对象,叫做AO链(作用域链)
arguments–>每个函数都有自己的callee,但不向外层寻找arguments的相关属性,不形成链
this–>那个对象实例调用this所在的函数,那么this就代表那个对象实例(this详解见下篇文章)

微信开发前端配置
微信前端开发岗位职责
前端微信公众号开发
赞(0)
前端开发者 » Web前端开发arguments详解
64K

评论 抢沙发

评论前必须登录!