javascript基础修炼(1)——一道十面埋伏的原型链面试题

在基础面前,一切技巧都是浮云。
在这里插入图片描述

我的github主页:https://github.com/dashnowords

我的新书上架啦,3天即登京东计算机编程语言类排行榜Top1!!!精选30+JavaScript库,从使用方式,设计原则,原理源码,周边知识等等多维度详细讲解,带你玩转前端花花世界,欢迎选购~

题目是这样的

要求写出控制台的输出.


function Parent() {
            this.a = 1;
            this.b = [1, 2, this.a];
            this.c = { demo: 5 };
            this.show = function () {
                console.log(this.a , this.b , this.c.demo );
            }
        }
function Child() {
    this.a = 2;
    this.change = function () {
        this.b.push(this.a);
        this.a = this.b.length;
        this.c.demo = this.a++;
    }
}
        Child.prototype = new Parent(); 
        var parent = new Parent();
        var child1 = new Child();
        var child2 = new Child();
        child1.a = 11;
        child2.a = 12;
        parent.show();
        child1.show();
        child2.show();
        child1.change();
        child2.change();
        parent.show();
        child1.show();
        child2.show();
题目涉及的知识点
  • this的指向
  • 原型机原型链
  • 类的继承
  • 原始类型和引用类型的区别
    每一个知识点都可以拿出来做单独的专题研究。
解题需要的知识点细节
  • 1.构造函数,都有一个prototype属性,指向构造函数的原型对象,实例会共享同一个原型对象;
  • 2.实例生成时,会在内存中产生一块新的堆内存,对实例的一般操作将不影响其他实例,因为在堆内存里占据不同空间,互不影响;
  • 3.每一个实例都有一个隐式原型__proto__指向构造函数的原型对象;
  • 4.this的指向问题,常见的情况包含如下几种:
    • 4.1 作为对象方法时,谁调用就指向谁(本题中主要涉及这一条)
    • 4.2 作为函数调用时,指向全局顶层变量window
    • 4.3 作为
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值