类与构造函数笔试题

1.

class Calc {
 constructor() {
  this.count = 0 
 }

 increase() {
  this.count ++
 }
}

const calc = new Calc()
new Calc().increase()

console.log(calc.count)

答案: 0

实例化了两个对象,操作其中一个对象的自增方法,不影响其他对象的属性

2.

class Bird {
 constructor() {
  console.log("I'm a bird. 🦢");
 }
}

class Flamingo extends Bird {
 constructor() {
  console.log("I'm pink. 🌸");
  super();
 }
}

const pet = new Flamingo();

打印出来什么?

答案:

I'm pink. 🌸

I'm a bird. 🦢

js是通过原型链来实现面向对象的,super表示调用父类的构造函数,而构造函数在“new”的时候便执行,按顺序输出

3.

class Counter {
  #number = 10

  increment() {
    this.#number++
  }

  getNum() {
    return this.#number
  }
}

const counter = new Counter()
counter.increment()

console.log(counter.#number)

答案:SyntaxError Private field '#number' must be declared in an enclosing class

获取私有变量应使用get方法

4.

class Dog {
  constructor(name) {
    this.name = name;
  }
};

class Labrador extends Dog {
  // 1 
  constructor(name, size) {
    this.size = size;
  }
  // 2
  constructor(name, size) {
    super(name);
    this.size = size;
  }
  // 3
  constructor(size) {
    super(name);
    this.size = size;
  }
  // 4 
  constructor(name, size) {
    this.name = name;
    this.size = size;
  }

};
  • A: 1
  • B: 2
  • C: 3
  • D: 4

答案:B

constructor中访问this,必须调用super,1、4错,3会报name不存在,所以是2

全部评论
以上题目如果不会,建议同学详细了解一下this相关知识,如有需要可报一下牛客前端集训营的课程,连接:https://www.nowcoder.com/courses/cover/live/662
点赞 回复 分享
发布于 2021-07-01 10:29

相关推荐

03-29 15:34
门头沟学院 Java
北斗导航Compass低仿版:能不能先搞清楚优先级啊,怎么可能是项目问题,项目很重要吗?又没学历 又没实习大厂凭啥约面?那玩具项目 没应用在真实生产环境下的 就算做上天又有什么用?早点找个小公司实习 拿小公司实习去投大厂实习,这才是你现在该做的
投递美团等公司8个岗位 简历被挂麻了,求建议
点赞 评论 收藏
分享
劝退式:感觉有人回才是不正常的
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务