原型
定义:原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原型也是对象。
特点
1.利用原型特点和概念,可以提取共有属性
原型的增删改查必须用Car.prototype.属性来改
Car.prototype.height=1400;//共有属性
Car.prototype.lang=4900;//共有属性
Car.prototype.carName='BMW';//共有属性
function Car(color,owner){
this.owner=owner;
this.color=color;
}
var car =new Car('red','prof.li');
var car1=new Car('blue','prof.ji');
Car.prototype{
height=1400;//共有属性
lang=4900;//共有属性
carName='BMW';//共有属性
}
function Car(color,owner){
this.owner=owner;
this.color=color;
}
var car =new Car('red','prof.li');
var car1=new Car('blue','prof.ji');
2.对象查看对象的构造函数 --->constructor
这个对象的constructor是本身存在的,也可以手动修改 07
function Person(){
}
function Car(){
}
Car.prototype = {
constructor:Person
}
var car = new Car();
3.对象如何查看原型 --->隐式原型proto
Person.prototype.name = 'sunny';
function Person(){
}
var person = new Person();//person.name=cherry
Person.prototype={//改了原型,换了个新对象
name:'cherry'
}
比如:引用值的相互赋值
var obj={name:'a'}
var obj1=obj;//obj1.name=a
obj={name:'b'};
Person.prototype.name = 'sunny';
function Person(){
}
var person = new Person();//person.name=sunny
Person.prototype.name='cherry';//在原有的基础上改了属性值
.查找属性,如果本身没有,则会去proto中查找,也就是构造函数的显式原型中查找,如果构造函数中也没有该属性,因为构造函数也是对象,也有proto,那么会去它的显式原型中查找,一直到null,如果没有则返回undefined