首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Javascript面向对象

面向对象的三要素:

继承:子类继承父类。

封装:数据的权限和保密

多态:同一接口的不同实现

三要素-继承

class People { constructor(name, age) { this.name = name this.age = age } speak() { console.log("说") }}//子类继承父类class Student extends People { constructor(name, age, number) { // 继承自父类,包括父类的name和age super(name, age) this.number = number } study() { console.log("学习") }}// 创建实例let xiaobai = new Student("小白", 20, 201819)xiaobai.study()console.log(xiaobai.number)xiaobai.speak()

1.People 是父类,公共的

2.继承可以将公共的方法抽离出来,提高服用,减少冗余

三要素-封装

1. public 完全开放

2. protected 对子类开放

3. private 对自己开放

class People { name //public 完全开放 age //public 完全开放 protected weight //可以在子类获取,对子类开放 constructor(name, age) { this.name = name this.age = age this.weight = "120" } speak() { console.log("说") }}//子类继承父类class Student extends People { number private height //私有属性仅在当前类可访问 constructor(name, age, number) { // 继承自父类,包括父类的name和age super(name, age) this.number = number } study() { console.log("学习") console.log(this.weight) }}// 创建实例let xiaobai = new Student("小白", 20, 201819)xiaobai.study()console.log(xiaobai.number)xiaobai.speak()// console.log(xiaobai.weight) //错误// console.log(xiaobai.height) //错误// 在这里我们是获取不到 weight和height 的

1.减少耦合,不该外露的不外露

2.利于数据,接口的权限管理

3.ES6 目前不支持,一般认为 _开头的属性是 private

三要素-多态

同一个接口,不同的表现

保持子类的开放性和灵活性

面向接口编程

class People { constructor(name) { this.name = name } say() { }}class A extends People { constructor(name) { super(name) } say() { console.log("A") }}class B extends People { constructor(name) { super(name) } say() { console.log("B") }}

总结:

面向对象就是对数据和函数的的结构化编程,合理的结构化把代码简单化抽象化。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200613A0J6N200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券