js的和修改继承

1.这个例题说明对象的方法有三种:类的方法,原型方法,对象方法,类的方法和原型方法可以被所有的对象实例共享,
//  但是对象方法只属于该对象实例。
//classA的定义
function classA(name) {
  this.name=name;
  //类的方法
      this.fangf=function(){alert("a.fangf")};
}
    //原型方法
    classA.prototype.showName=function(){alert(this.name)}
  //classA的实例
  var a=new classA("冯杰明");
  a.bb=function(){alert("bb")}//对象方法
  //。。。
  a.fangf();

  a.bb();
  a.showName();

  var b=new classA("冯杰明2");
  b.fangf();
 
  //b.bb();会报错,说不是b.bb方法不存在
  b.showName();

//2.来看看对象的继承方法
//总的来说有对象冒充方法、call\apply方法 、原型链继承发、综合方法
//原型链方法不能继承其父亲的属性,而通常的方法不能继承父亲的prototype方法,所以通常需要混合使用。
function classB(name) {
//对象冒充方法
this.fangfa=classA;
this.fangfa(name);
this.classbfunction=function(){alert("我是classB")}
//call和apply方法
//classA.call(this,name);
    // classA.apply(this,[name]);  //call和apply的区别只在于参数,apply需要的是数组。
}
    //原型继承方法
    classB.prototype = new classA();
classB.prototype.showName1=function(){alert(this.name+"*****");};

obj = new classB("hero");
obj.fangf();
obj.showName();
obj.classbfunction();
obj.showName1();
   

猜你喜欢

转载自1183520106.iteye.com/blog/2269558