1.构造函数写法:
注意:
1.函数名大写
2.在函数内部不需要使用new创建对象
3.将属性和方法赋值给this
4.不需要使用return返回
5.使用时需要使用new关键字实例化一个对象
2.new的作用:
-
开辟一个新的内存空间 新的空对象
-
this指向新的对象
-
将属性和方法赋值给新对象
-
返回这个新对象
3.prototype原型
每个构造函数都有一个原型(prototype:原型对象)上面存放构造函数的公有的属性和方法
每个构造函数都有一个显示属性(prototype)通过这个显示属性可以指向构造函数的原型(prototype),这个原型对象可以通过construtor指回构造函数,构造函数通过new实例化的对象可以通过隐式属性指向原型对象(prototype)可以访问原型对象身上的属性和方法
```
function Person(name,age){
this.name=name
this.age=age
}
//公有的属性和方法
Person.prototype.eat=function(){
console.log('吃饭');
}
var p=new Person('张三',19)
console.log(p);
p.eat()
// var p1 = new Person('lisi', 19)
console.log(p.__proto__===Person.prototype)//true
```
4.constructor
构造器,也是构造函数,永远指向构造函数本身
5.__proto__
隐式属性
实例对象和原型对象上都有的属性
6.原型链
实例对象通过__proto__
指向自身的原型,自己的原型上如果有想要查找的属性则返回,没有则利用原型身上的__proto__
继续向上查找,有则返回,没有则空,
实例对象通过__proto__
向上查找的过程(线路)就是原型链