JavaScript中的继承
<script type="text/javascript">
/* 对象冒充方式是继承 */
function Animal(name,age){
this.name = name;
this.age = age;
this.eat = function(){
alert(this.name+"--"+this.age);
}
}
function Dog(name,age,sex){
this.animal = Animal;//定义一个属性
this.animal(name,age);//类似于Animal(name,age)
delete animal;//删除对象里的属性或数组中某一个元素
this.sex = sex;//初始化自己的属性
//子类特有的
this.bite = function(){
alert(this.name+"--"+this.age);
}
}
// var animal = new Animal("小狗","3","雌性");
var dog = new Dog("阿黄",20,"雄性");
dog.eat();//调用父类方法
dog.bite();
</script>
继承之混合方式
<script type="text/javascript">
/* call(apply)+原型方式 */
function Person(name,age){
this.name = name;
this.age = age;
}
//在外部使用原型定义方法时通过call或apply是无法继承的
Person.prototype.eat = function(){
alert(this.name+"--like eatting");
}
//继承实现
function Chinese(name,age){
// Person.call(this,name,age);
Person.apply(this,[name,age]);
//定义自己的方法
this.sleep = function(){
alert("我自己的方法。。。")
}
}
Chinese.prototype = new Person();
var ch = new Chinese("何家豪",22);
ch.eat();
ch.sleep();
</script>
继承之Apply/call
<script type="text/javascript">
function fn(width,height){
this.width = width;
this.height = height;
}
function area(width,height){
//fn(w,h);
alert( width*height);
}
var a = new fn(10,20);
// area.call(fn,a.width,a.height);
// area.apply(fn,[a.width,a.height]);
function Person(name,age){
this.name = name;
this.age = age;
this.eat = function(){
alert(this.name+"---"+this.age);
}
}
//类
function Chinese(name,age){
// Person.call(this,name,age);
Person.apply(this,[name,age]);
//成员方法
this.sleep = function(){
alert(this.name+"like sleeping...");
}
/* this.eat = function(){
alert("我是重写的方法");
} */
}
var ch = new Chinese("张三",20);
ch.eat();
ch.sleep();
</script>
总结:学习js语言时,将js与Java中的语法进行类比,尤其注意js的独特之 处。
JavaScript之继承
最新推荐文章于 2024-09-22 11:17:00 发布