javascript中的面向对象:封装、继承、多态详解

目录

    • 封装
    • 继承
    • 多态
      • 重载
        • arguments
      • 重构
    • 详解

封装

在面向对象中,一定要把公用以及父级自己要用的属性和方法封装在父对象的内部

继承

当子对象需要公用属性或方法时,可以直接从父对象中继承

多态

重载

配合arguments,根据传入的参数不同,执行不同的函数体

arguments

一个类数组对象,包含所有传入的参数,是实现重载的一种工具

重构

父对象构造出来的属性和方法,都可以在子对象中重新定义

详解

例如

class Parent {
	constructor(age){
		this.name = 'mary'
		this.age = age
	}
	say(){
		console.log('我是公用方法')
	}
	intro(){
		console.log(`my name is ${this.name},my age ${this.age}`)
	}
	
}
class Son extends Parent {
	constructor(height){
		super()
		this.height = height
	}
	intro(){
		console.log(`my name is ${this.name},my height ${this.height}`)
	}
}
let son = new Son(60)
son.say() // 我是公用方法
son.intro() // my name is mary,my height 60

上述代码中,有一个父类Parent,里面两个属性nameage,以及两个方法say()intro()

一个子类Son继承父类Parent,并且有一个自有属性height,已经一个和父类中同名的方法intro

这种把属性和方法写进同一个类中的方式,就称为封装

而子类本身没有say()方法却可以直接使用父类中的say()方法,没有name属性却可以使用父类中的name属性,就称为继承

而子类自有的intro方法和父类中的intro方法重名,最终却采用的是自身的方法,就称为多态

而arguments,就可以当作实现重载的一种工具使用,例如可以根据arguments的长度,也就是根据传入参数的长度,执行不同的方法等。

你可能感兴趣的:(javascript,多态,封装,object,javascript)