js中有三种继承方式
1.js原型(prototype)实现继承
<span style="background-color: #ffffff"><span style="font-size: 18px"><html>
<body>
<script type="text/javascript">
function person(name,age){
this.name=name;
this.age=age;
}
person.prototype.sayhello=function(){
alert("使用原型得到name:"+this.name);
}
var per=new person("小倩",21);
per.sayhello(); //输出:使用原型得到name:小倩
function student(){}
student.prototype=new person("如彤",21);
var stu=new student();
student.prototype.grade=5;
student.prototype.intr=function(){
alert(this.grade);
}
stu.sayhello();//输出:使用原型得到name:如彤
stu.intr();//输出:5
</script>
</body>
</html></span></span>
2.构造函数实现继承
<span style="font-size: 18px"><html>
<body>
<script type="text/javascript">
function parent(name){
this.name=name;
this.sayparent=function(){
alert("parent:"+this.name);
}
}
function child(name,age){
this.tempmethod=parent;
this.tempmethod(name);
this.age=age;
this.saychild=function(){
alert("child:"+this.name+"age:"+this.age);
}
}
var parent=new parent("江剑");
parent.sayparent(); //输出:“parent:江剑”
var child=new child("李鸣",24); //输出:“child:李鸣 age:24”
child.saychild();
</script>
</body>
</html></span>
3.call , apply实现继承
<span style="font-size: 18px"><html>
<body>
<script type="text/javascript">
function person(name,age,love){
this.name=name;
this.age=age;
this.love=love;
this.say=function say(){
alert("姓名:"+name);
}
}
//call方式
function student(name,age){
person.call(this,name,age);
}
//apply方式
function teacher(name,love){
person.apply(this,[name,love]);
//person.apply(this,arguments); //跟上句一样的效果,arguments
}
//call与aplly的异同:
//1,第一个参数this都一样,指当前对象
//2,第二个参数不一样:call的是一个个的参数列表;apply的是一个数组(arguments也可以)
var per=new person("凤楼",25,"荧屏"); //输出:“凤楼”
per.say();
var stu=new student("曹玉",18);//输出:“曹玉”
stu.say();
var tea=new teacher("秦杰",16);//输出:“秦杰”
tea.say();
</script>
</body>
</html></span>
以上就是javascript中对象继承的三种方式代码实例详解的详细内容。