永发信息网

js中arguments.callee指向哪个函数,以及arguments参数传值问题。

答案:2  悬赏:80  手机版
解决时间 2021-04-13 20:48
  • 提问者网友:我没有何以琛的痴心不悔
  • 2021-04-13 04:00
<script type="text/javascript">
function check(args)
{
var actual = args.length;
var expected = args.callee.length;
document.write("actual:"+actual);
document.write("expected:" + expected);
if(actual!=expected)throw new Error("error!");
}
function f(x,y,z)
{
check(arguments);
return x+y+z;
}
document.write("</br>result:"+f(2,3,4));
</script>
问:代码中check()函数中的args.callee为什么不是指向check()函数
最佳答案
  • 五星知识达人网友:狂恋
  • 2021-04-13 04:29
指向为函数f()
全部回答
  • 1楼网友:动情书生
  • 2021-04-13 04:55
这里的activexstring是只createxhr对象的一个属性,自定义的. 总的来说activexstring一般只会有2个类型的值,除非有在其他地方赋值... 这2个类型的值是null,和versions数组中的某一个 这个函数的作用就是创建一个异步请求的对象. 从函数开始 if(typeofxmlhttprequest!="undefined"){ 先判断了是否存在xmlhttprequest 如果有 就直接返回他创造的对象. }else if(typeofactivexobject!="undefined"){ 然后判断了是否存在activexobject 如果存在,则创建他的对象,但这个对象需要一个传入参数,如下: new activexobect(versions[i]); 需要versions数组中的某个项,数组的3个项分别对应3个版本. 从最高版本开始创建,如果创建失败,就被catch抓住,不处理,继续循环. 直到循环创建成功为止,然后给自己添加一个属性叫activexstring arguments.callee.activexstring arguments是javascript函数的内置对象,代表传入参数的集合 callee就代表对象本身即new createxhr() 如果3次循环完了都没找到,就会抛出 thrownewerror("noxhrobjectavailable."); 的错误. 其实你把 arguments.callee.activexstring 换成 this.activexstring 就容易理解了.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯