第五题

请在下面写出JavaScript面向对象编程的混合式继承。并写出ES6版本的继承。要求:汽车是父类,Cruze是子类,父类有颜色、价格属性、有售卖方法。Cruze子类实现父类颜色是红色,价格是14w,售卖方法实现输出如下语句:将红色Cruze买给了小王,价格是14w

class Car {
  constructor(color, price){
    this.color = color;
    this.price = price;
  }
  sell(){
    console.log(this.color,this.price);
  }
}
class Cruze extends Car {
  constructor(){
    super("red" ,"14w")
  }
}
const xiaoWang = new Cruze();
xiaoWang.sell()

考点:

1. 原型和原型链

  • 所有的引用类型(数组,对象,函数),都具有对象特性,即可自由扩展属性(null除外)
  • 所有的引用类型(数组、对象、函数)都有一个__proto__属性,属性值是一个普通的对象
  • 所有函数,都有一个prototype属性,属性值也是一个普通对象
  • 所有引用类型(数组,对象,函数)__proto__属性值指向它的构造函数的prototype属性值
  • _proto(隐式原型)与prototype(显式原型)

2. call和apply的区别:改变对象的执行上下文,区别就是一个是传参形式不一样

3. JavaScript constructor和Object.create()

  • constructor属性返回对创建此对象的数组函数的引用
  • Object.create()方法会使指定的原型对象及其属性去创建一个新的对象

4. ES6新语法

  • 什么是构造函数和析构函数
  • 访问控制(可见性)
  • 对象继承
  • 范围解析操作符(::)
  • static 静态关键字
  • 抽象类
  • 对象接口
  • 重载
  • JavaScript是任何实现重载的
    • ES6 super.同名方法()
    • ES5

你可能感兴趣的:(第五题)