原型对象
1. 定义:原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原型也是对象。
2. 利用原型特点和概念,可以提取共有属性
3. 对象如何查看对象的构造函数-->constructor
4. 对象如何查看原型-->隐式属性__proto__
1. 函数的原型对象
所以有对象都有属性叫_proto_代表的是这个对象的原型对象
原型的思想:内存公用
2. 使用构造函数创建对象
当把一个函数作为构造函数 使用new创建对象的时候,那么这个对象就会存在一个默认的不可见的属性,来指向了构造函数的原型对象。这个不可见的属性我们一般用[[prototype]]来表示,只是这个属性没有办法直接访问到。
function fn(){
this.life=1;
}
//隐式操作:fn.prototype={}
function fm(){
this.color="black";
}
//隐式操作:fm.prototype={}
var f1=new fn();
var f2=new fm();
console.log(f1.__proto__===f2.__proto__)//false
console.log(f1.__proto__===fn.prototype)//true
与构造函数有关系
所有函数都有属性name,length,prototype属性,用函数创建对象
创建出来的的对象的原型对象就是prototype属性引用的对象
prototype属性中引用一个系统内置的对象:new Object()/{}
new fn()======>1.创建一个空对象===>创建一个空对象{} 给他添加一个属性__proto__ 这个属性引用fn.prototype
对象有_proto__属性 代表它的原型对象
函数有prototype属性 代表创建的对象的原型对象
原型对象可以访问成员