之前呀,得我助提醒,在prototype
应该说得详细些,之前我们说,每创建一个新函数,该函数就会有个prototype属性指向其原型对象。并且该函数的constructor属性就是来自prototype原型对象上的。例如: function Person (){ this.name=’xinshan’; } var person1= new Person(); /* 在这里为了看清prototype。我们规定: prototype 是实例对象perosn1的原型对象; prototype 是构造函数Person的原型属性; prototype 代替某些浏览器支持的__proto__; / / 那么以下就是prototype的详细说明了: 1、构造函数 Person的prototype原型属性和实例对象prototype原型对象指向是一样的。 2、实例对象 person1的constructor属性其实在其prototype原型对象上,constructor又指回到构造函数Person。 3、如果再实例化出 person2实例对象,以上观点依然成立,并且以上观点最主要是为了说明 */ /*实例对象在访问某一个属性的时候 * 1.首先会在当前对象中查找该属性, * 2.如果没有找到,会在构造方法里面查找 * 3.如果还没有找到,会在构造函数的 prototype 属性中查找 */到这里如果谈实际工作需求的话,已经够了。博主不才,目前接触过最大的框架arcgis for javascript(92m)就是基于此设计的,明白其原理,在学习和工作中才能应万变。
在JavaScript中,实现继承的最主要的方式的就是通过原型链。一个引用类型继承另一个引用类型的属性和方法。 function Oneobj(){ this.name=’xin’; } function Twoobj(){ this.age=18; } var oneObj = new Oneobj(); var twoObj = new Twoobj(); twoObj.prototype=new Oneobj(); //浏览器中请换成__proto__ alert(rwoObj.name) //‘xin’ 这样我们就完成了一个继承了。深入了解继承的路还有,有兴趣可以再看看。