javascript中的prototype

 javascript的方法可以分为三类:
a 类方法
b 对象方法
c 原型方法 
例子:
 
function People(name)
{
this.name=name;
//对象方法
this.Introduce=function(){
alert("My name is "+this.name);
}
}
//类方法 静态方法
People.Run=function(){
alert("I can run");
}
//原型方法
People.prototype.IntroduceChinese=function(){
alert("我的名字是"+this.name);
}

a.prototype=new B();我的理解

理解prototype不应把它和继承混淆。A的prototype为B的一个实例,可以理解A将B中的方法和属性全部克隆了一遍。A能使用B的方法和属性。这里强调的是克隆而不是继承。可以出现这种情况:A的prototype是B的实例,同时B的prototype也是A的实例。a是B的派生对象,相当于a先复制b,然后再拓展。

函数运行时会先去本体的函数中去找,如果找到则运行,找不到则去prototype中寻找函数。或者可以理解为prototype不会克隆同名函数。属性类似。

 

 

原文地址:https://www.cnblogs.com/javahuang/p/2971709.html