继续创作,加速成长!这是我参加「日新计划 10 月更文挑战」的第31天点击检查活动概况

面向目标编程

什么是面向目标

JavaScript、Java、c#…. 面向目标:JavaScript有些差异! 类:模板 原型目标 目标:详细的实例 在JavaScript这个需求我们换一下思维方法! 原型:

var user={
		name:"稀土",
		age:3,
		run:function(){
			console.log(this.name+"run....")
		}
	}
	var lihua={
		name:"lihua"
	}
	lihua.__proto__=user

李华的原型是user

JS基础-面向对象

class承继

class关键字,是在ES6引入的

	class student{
		constructor(name) {
			this.name=name
		}
		hello(){
			alert('hello')
		}
	}
	var xiaoming=new student("xiaoming")

JS基础-面向对象

承继

	class xiaoming extends student{
		constructor(name,grade) {
			super(name)
			this.grade=grade
		}
		mygrade(){
			alert("稀土")
		}
	}
var xiaohong=new xiaoming("xiaohong",1)	

JS基础-面向对象
本质:检查目标原型

原型链

原型链:每个结构函数都有一个原型目标,原型目标都包括一个指向结构函数的指针,而实例都包括一个指向原型目标的内部指针。那么假设我们让原型目标等于另一个类型的实例,成果会怎样?明显,此刻的原型目标将包括一个指向另一个原型的指针,相应地,另一个原型中也包括着一个指向另一个结构函数的指针。假设另一个原型又是另一个类型的实例,那么上述联系仍然成立。如此层层递进,就构成了实例与原型的链条。

proto

当谈到承继时,JavaScript 只要一种结构:目标。每个实例目标(object)都有一个私有属性(称之为 proto )指向它的结构函数的原型目标(prototype)。该原型目标也有一个自己的原型目标(proto),层层向上直到一个目标的原型目标为null。依据界说,null没有原型,并作为这个原型链中的最终一个环节。

JS基础-面向对象