Javascript类使用object.getprototypeof调用解析方法的分析

每个函数都有一个原型的属性,称为原型,每个对象也有一个原型,它可以通过在Firefox、Safari、Chrome、Opera、__proto__访问,并没有相关的接口都在IE6 / 7 / 8。
复制代码代码如下所示:
人函数(){
this.method1 =函数(){ }
}
person.prototype.method2 =函数(){ }

函数(man){ }
man.prototype =新的人();

man.prototype.m1 =函数(){ }
man.prototype.m2 =函数(){ }

var =新人();
对于(在m.__proto__ VaR){
警报(a);
}

父类的人,子类的人,被定义。

ECMAscript V5添加一个静态getprototypeof方法(Firefox / Chrome实现)为对象来获取对象的原型,它可以用来模拟java超级。
复制代码代码如下所示:
功能人(){
this.method1 =函数(){ alert(1)}
}
person.prototype.method2 =函数(){ alert(2);}

功能人(){
this.m1 =函数(){
Object.getPrototypeOf(本)、();
}
}
man.prototype =新的(人); / /原型继承

man.prototype.m2 =函数(){
Object.getPrototypeOf(这)2();
}


var =新人();
man.m1();
man.m2();

在M1方法挂在这类人,我们称之为方法对这个挂在父类的人,和M2的方法挂在调用父类的原型样机的方法。

可以看出,对象原型不仅包括构造函数原型上的属性,而且还包括构造函数中的属性,当然,由于Javascript中的上下文,父类中的这个子类不能在子类中自动转换,需要一些技术。

这是java的情况
复制代码代码如下所示:
包1;

类人{
专用字符串名;

人(字符串名){
this.name =名称;
}
public void方法(){
System.out.println(这个名字);
}
}
类人扩展人{

人(字符串名){
超级(名字);
}
公共空白M1(){
super.method1();
}
}
公共类测试{
public static void main(String { } args){
人男1 =新的人(Jack);
man1.m1();
}
}