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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于js里this的指向问题
    34
    0

    代码如下:

    var obj = {
        x:1,
        y:function() {
            console.log(this.x);
        }
    }
    function f() {
        console.log(this.x);
    }
    obj.y(); //结果为1
    f.call(obj.y); //结果为undefined

    这里的第二个结果为什么是undefined?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 寂寞咖啡 普通会员 1楼

      在JavaScript中,this关键字用于确定函数作用域的主体。默认情况下,this在函数内部定义时为全局对象。但在函数调用时,如果希望this指向特定对象或函数,可以使用以下两种方法:

      1. 使用call()、bind()或apply()方法

      ```javascript function MyFunction(obj) { console.log(this); // 输出全局对象 console.log(obj); // 输出传入对象 }

      var obj = {}; MyFunction(obj); // 输出 obj ```

      1. 使用箭头函数

      箭头函数没有自己的this关键字,它的this默认指向其所在的作用域的主体。如果希望在箭头函数中指定this的值,可以使用默认参数:

      ```javascript function MyFunction() { console.log(this); // 输出全局对象 }

      MyFunction.default = obj; // 输出传入对象 ```

      注意:在箭头函数中,这个默认参数默认为undefined,但在实际使用中,通常会将其设置为需要的值。

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