javascript内部原理篇[__proto__和prototype]
2014-01-01 14:45 低调de草原狼 阅读(150) 评论(0) 编辑 收藏 举报javascript的__proto__(注意前后都是两条下划线)和prototype都可以访问对象的原型对象,那么他们之间有什么不同吗?
是的,__proto__是只能用 对象. 来访问,而prototype则只能是 类. 来访问
下面简单举例:
/** * 利用原型模式实现简单继承 */ function per(){ this.getName = function(str){ alert(str); } } per.prototype.getAge = function(age){ alert(age); } var a = {}; a.__proto__ = per.prototype; //a.getAge(2); // a.getName("a"); /** * 简单方式实现继承 */ var b = {}; b.__proto__ = new per(); b.__proto__.constructor = b; b.getAge("1"); b.getName("a"); /** * 串联继承 */ function A(){ this.getA = "a"; } function B(){ this.getB = "b"; } function K(){} B.prototype = new A(); B.prototype.constructor = B; K.prototype = new B(); K.prototype.constructor = K; var test = new K(); alert(test.getA); alert(test.getB);
通过以上例子大家可以简单看到其中的区别
欢迎大家在评论中讨论此问题,我会及时回复