首页 > js高级程序设计里面的一段的argument.callee代码,求解释

js高级程序设计里面的一段的argument.callee代码,求解释

红色箭头标记的地方,arguments.callee不是函数自己吗?为什么会有个offset属性,为什么要进行这一层判断呢?


这个是计算元素大小的那一节内容吧?书里有说啊,不同浏览器的起点坐标不一样,所以要根据情况判断起点坐标是(0, 0)还是(2, 2);offset变量就是保存这个起点坐标的地方,根据不同情况值可能是0或-2。
这个offset变量是getBoundingClientRect()这个方法专用的,把offset变量绑定在上面不就顺理成章么。这个函数的逻辑是第一次执行时先判断函数自己有没保存了offset,没的话就算一次保存起来,以后再调用就直接拿offset出来就行了。
其实还可以把offset当作getBoundingClientRect()里的私有变量,这个是闭包的内容了。


arguments.callee代表函数本身没有错。但是,函数也可以有自己的属性,包括自定义属性。

【热门文章】
【热门文章】