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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js关于原型对象this的问题?
    41
    0

    1.为什么下面代码this会指向这个字符串本身,这里面到底发什么了什么?
    代码如下

    var str = 'ahbbccdeddddfg';
            str.__proto__.getMostOften = function () {
                console.log(this); 
                
            }
             执行`str.__proto__.getMostOften()`
            这里面this为什么会显示`String {"ahbbccdeddddfg"}`
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 摇曳彼岸花 普通会员 1楼

      在JavaScript中,this关键字可以用来引用函数、对象或方法的当前作用域。在原型链中,this会根据原型链的顺序来决定。

      下面是一些关于this的常见情况:

      1. call()apply()方法:call()apply()方法是JavaScript提供的一种在函数之间共享参数的方法。它们的使用方式是:

      javascript function myFunction(arg1, arg2, ...rest) { console.log(this); // 输出当前作用域中的this // ... } myFunction(1, 2, 3); // 输出 1,2,3

      1. bind()方法:bind()方法可以用来绑定一个函数的this值。它接受两个参数:一个要绑定的函数和一个可选的函数名。bind()方法会返回一个新的函数,该函数的this值是新绑定的函数。

      javascript function myFunction() { console.log(this); } var boundFunction = myFunction.bind({ name: 'myFunction' }); boundFunction(); // 输出 'myFunction'

      1. arguments对象:arguments对象包含了当前函数调用的所有参数。this在函数调用中默认指向arguments对象。

      javascript function myFunction() { console.log(this); } myFunction(1, 2, 3); // 输出 1,2,3

      在使用this时,需要注意以下几点:

      1. this的值在不同的函数或方法中可能不同。因此,如果你需要在函数中定义this的值,你需要在函数内部明确地定义this

      2. this的值可能会根据原型链的顺序改变。因此,如果你需要在函数内部通过this访问原型对象,你需要使用this作为参数。

      3. this的值在严格模式下是不可变的。因此,如果你需要在严格模式下改变this的值,你需要使用undefined作为参数。

      总的来说,this是JavaScript中非常重要的一个概念,理解它的使用方法和作用域规则是非常重要的。

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