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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    为什么打印的结果this.a不是10
    31
    0
           function f1() {
                this.a = 1;
                this.b = [1, 2, this.a];
                this.show = function(){
                    console.log(this.b)
                }
            }
    
            function f2() {
                this.a = 2;
            }
    
            f2.prototype = new f1();
    
            var a2 = new f2();
            a2.a = 10;
            console.log(a2.show()); //[1,2,1]?
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 爱只为她 普通会员 1楼

      在JavaScript中,this关键字的指向是基于函数调用的上下文的。也就是说,this的值取决于函数是在哪个上下文中被调用的。

      如果函数是在一个全局作用域(如window)中被调用的,那么this的值就是window对象。如果函数是在一个函数内部被调用的,那么this的值就是这个函数本身。

      如果你尝试打印this.a,那么打印的结果应该是undefined,因为undefined是JavaScript的默认值,它的值是undefined,而不是10。

      如果你想打印的是某个特定的对象的属性,你可以使用箭头函数,或者直接使用这个对象的属性名,如下所示:

      ```javascript let a = { name: "John", age: 30 };

      console.log(a.name); // 输出 "John" console.log(a.age); // 输出 30 ```

      在上面的代码中,console.log(a.name)会打印出"John",这是a对象的属性name的值。而console.log(a.age)会打印出30,这是a对象的属性age的值。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部