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);
通过以上例子大家可以简单看到其中的区别
欢迎大家在评论中讨论此问题,我会及时回复