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();
js的和修改继承
猜你喜欢
转载自1183520106.iteye.com/blog/2269558
今日推荐
周排行