请在下面写出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是任何实现重载的