账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    直接调用arguments中的函数,this指针是如何发生的改变,为什么会指向arguments
    49
    0
    var length = 10;
    function fn() {
        console.log(this);
    };
    var obj = {
        length: 5, 
        method: function (fn) {
            arguments[0]();
        }
    };
    obj.method(fn, 1);
    
    

    调用arguments中的fn,为什么this会指向arguments,求解惑,谢谢~

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ↗冷殇ε 普通会员 1楼

      在JavaScript中,arguments对象是JavaScript的内置对象,用于存储函数调用时传入的所有参数。

      当你直接调用arguments对象中的函数时,this指向的是该函数在执行时所在的上下文。这就是为什么当你调用一个全局函数时,this通常会指向全局对象,而不是arguments对象。

      例如,以下代码将全局函数myFunction作为参数传递给alert()函数:

      javascript myFunction(); alert("Hello, world!");

      在这个例子中,myFunction是在alert()函数的外部定义的,所以myFunctionthis指向的是全局对象。因此,alert()函数会弹出"Hello, world!"。

      如果你试图调用myFunction并传递一个arguments对象,this将仍然指向全局对象。这是因为arguments对象是myFunction内部定义的,它保存了函数在执行时传入的所有参数。当你调用myFunction时,arguments对象中的每个参数都会被传递给myFunction

      例如,以下代码将myFunction作为参数传递给alert()函数:

      javascript myFunction(1, 2, 3, 4, 5); alert("Hello, world!");

      在这个例子中,myFunction是一个内部定义的函数,它有this指向全局对象。所以,alert()函数会弹出"Hello, world!"。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部