(1)对象,即键值对 (2)方法,即值为函数的属性 (3)原型,即对象继承实体
JavaScript基于原型继承,原型就是一个对象,继承是在原型对象的基础上进行的 prototype即为原型,他是函数的属性,函数也是对象(原型就是函数的prototype属性) 有继承与没有继承的比较 没有继承
var Person=function(){ this.say=function(){ alert("您好"); }; }; var p1=new Person(); var p2=new Person(); p1.say(); p2.say();这种不使用继承的方法的结构图 使用继承的
var Person=function(){ }; Person.prototype={ say:function(){ alert("您好"); } }; var p1=new Person(); var p2=new Person(); p1.say(); p2.say();这样使用原型继承的结构图
对象有原型,那么原型也是对象,原型也有原型 所有对象的都来自与Object(Object是函数,object是类型)的对象 所有的函数都来自与Function对象 所有的函数是对象,继承自Function.prototype obj是对象,继承自Object.prototype Function是对象,是函数,继承自Function.prototype Function.prototype是对象,继承自Object.prototype Object.prototype是对象,继承自null 简单表示 函数—>Function—>Funtion.prototype—>Object.prototype—>null
该成员在这个类型中寻找该成员的定义,如果存在,就直接使用该成员,如果不在当前类型中,就访问其原型,找到就用,找不到就继续向上找,以此类推,直到null。