js面向对象

一、面向对象基础
1.创建对象

// 构造函数
function Person () {
	this.name = "aaa";
	this.age = "16"
}
let p = new Person;
// class类
class Person{
	constructor() {
		this.name =  "name";
		this.age = "16"
	}
}
let p = new Person;
// Object.create
let person = {
	name: "name",
	age: "16"
}
let p = Object.create(person) // 以perosn作为原型对象创建新对象p

2.原型属性和继承
所有的函数都可以是构造函数,可以用于创建对象
所有的函数都有prototype属性
通过构造函数创建的对象都具有__proto__原型属性,其指向构造函数的prototype
那么通过指定构造函数的.prototype.xxx = xxx挂载的属性或者函数就被继承

function Person () {
	this.name = "aaa";
	this.age = "16"
}
Person prototype.a = "1";
let p = new Person;
console.log(p.a); // 1;
// 此时创建的对象p继承了Perosn上挂载的a属性。

class Person () {
	constructor() {
		this.name =  "name";
		this.age = "16"
	}
	check() {
		console.log(1);
	}
}
let p = new Person;
// class的写法更加简洁,check已经挂载在p的原型上了

class child extends Person{
    constructor() {
        super();
        this.child = true;
    }
}
let c = new child;
c.check() // 1
// child子类继承与Person,此时c可以访问到父类Person的所有方法和属性

你可能感兴趣的:(js面向对象)