继续创作,加速成长!这是我参加「日新计划 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
class承继
class关键字,是在ES6引入的
class student{
constructor(name) {
this.name=name
}
hello(){
alert('hello')
}
}
var xiaoming=new student("xiaoming")
承继
class xiaoming extends student{
constructor(name,grade) {
super(name)
this.grade=grade
}
mygrade(){
alert("稀土")
}
}
var xiaohong=new xiaoming("xiaohong",1)
本质:检查目标原型
原型链
原型链:每个结构函数都有一个原型目标,原型目标都包括一个指向结构函数的指针,而实例都包括一个指向原型目标的内部指针。那么假设我们让原型目标等于另一个类型的实例,成果会怎样?明显,此刻的原型目标将包括一个指向另一个原型的指针,相应地,另一个原型中也包括着一个指向另一个结构函数的指针。假设另一个原型又是另一个类型的实例,那么上述联系仍然成立。如此层层递进,就构成了实例与原型的链条。
proto
当谈到承继时,JavaScript 只要一种结构:目标。每个实例目标(object)都有一个私有属性(称之为 proto )指向它的结构函数的原型目标(prototype)。该原型目标也有一个自己的原型目标(proto),层层向上直到一个目标的原型目标为null
。依据界说,null
没有原型,并作为这个原型链中的最终一个环节。