您好,欢迎访问一九零五行业门户网

javascript中对象继承的三种方式代码实例详解

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中对象继承的三种方式代码实例详解的详细内容。
其它类似信息

推荐信息