微信服务号前端开发教程 |
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详解见下篇文章)
微信开发前端配置 |
微信前端开发岗位职责 |
前端微信公众号开发 |
评论前必须登录!
注册