arguments.callee.caller
时间: 2024-05-26 15:18:12 浏览: 17
`arguments.callee.caller` 是一个已经被弃用的方法,它用于获取当前函数被哪个函数调用。它返回当前函数的调用者函数的引用,但在严格模式下会导致错误。推荐使用 `Function.caller` 方法来代替 `arguments.callee.caller`。不过也要注意,`Function.caller` 在严格模式下同样会导致错误。因此,在编写代码时要注意选择合适的方法,以确保代码的正确性和可维护性。
相关问题
var F11_statu=false; $(function() { $('.myscroll').myScroll({ speed: 60, //数值越大,速度越慢 rowHeight: 38 //li的高度 }); //监控F11设置滚动条 $(window).on("keydown", function (e) { var e = event || window.event || arguments.callee.caller.arguments[0]; if (e && e.keyCode == 122) { F11_statu=true; } }); }) window.addEventListener('resize', function () { if(F11_statu){ $("body").css({"overflow":"hidden"}); F11_statu=false; }else{ $("body").css({"overflow":"auto"}); F11_statu=true; } })
这段代码的作用是什么?
这段代码的作用是实现一个自定义滚动条的功能,并且监控F11键的按下事件,以便在全屏模式下设置滚动条。其中,第一行代码定义了一个变量F11_statu,用于记录F11键的状态;第二行代码使用jQuery选择器获取class为"myscroll"的元素,并调用myScroll方法实现滚动条的效果;第六行代码监控F11键的按下事件,如果按下了F11键,则将F11_statu变量设为true;第十行代码使用addEventListener方法监听窗口大小改变事件,如果F11键被按下,则将body元素的overflow属性设为hidden,以隐藏浏览器自带的滚动条,实现全屏滚动条效果;如果F11键没有被按下,则将body元素的overflow属性设为auto,以显示浏览器自带的滚动条。
DVA 如何解决运行报错:异常:TypeError: 'caller', 'callee', and 'arguments'
DVA是一个基于React和Redux的轻量级框架,它本身并不能解决JavaScript的运行报错。而这个异常TypeError: 'caller', 'callee', and 'arguments'是由于JavaScript的严格模式('use strict')下禁止使用arguments.callee和arguments.caller等属性导致的。解决这个问题的方法有两种:
1.避免使用arguments.callee和arguments.caller等属性,可以使用具名函数表达式或者箭头函数来代替。
2.在非严格模式下运行代码,可以在代码文件开头添加'use strict'来关闭严格模式。
以下是两种解决方法的示例代码:
1.使用具名函数表达式代替arguments.callee:
```javascript
const factorial = function fact(n) {
if (n <= 1) {
return 1;
}
return n * fact(n - 1);
};
```
2.在非严格模式下运行代码:
```javascript
'use strict';
// your code here
```