构造函数 首字母大写不需要return
function Person(name,age){
this.name=name;
this.age=age;
this.eat=function(){
document.write(${this.name}年纪${this.age}会吃饭)
}
}new构造函数Person生成实例化对象p1
通过new会把构造函数的this给到实例化对象p1
通过new把构造函数的属性(name,age)和方法(eat)全给了实例化对象p1
let p1=new Person('zhangsan',30);
每个函数都有一个prototype属性
是一个指针,指向一个对象
这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法
function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.eat=function (){
document.write(`${this.name}${this.age}`)
}
Person.prototype.weight='70kg'
let p1=new Person('zhangsan',100)
document.write(p1.weight+'<br>')
p1.eat()
原型继承的第二种
不变的属性都可以直接写入Person.portotype
function Student(){};
Student想要继承Person的属性
Student.prototype=Person.prototype;
let stu1=new Student();
console.log(stu1.foot);
直接继承的缺点,任何对Student.prototype的修改都会反应到Person.portotype *//*
Student.prototype.name='zhangsan'