关键词

javascript 中对象的继承〔转贴〕

以下是javascript中对象的继承攻略:

1. 继承的概念

在Javascript中,可以通过继承的方式来实现代码的复用性。继承是一种以已有类(或对象)为基础,创建新类(或对象)的技术,新创建的类或对象具有已有类(或对象)的属性和行为。

2. 原型链继承

原型链继承是Javascript中最基础的继承方式,它的原理就是通过让一个构造函数的原型指向另一个构造函数的实例来实现继承。

下面是一个通过原型链继承实现的示例:

function Person(name, age) {
    this.name = name;
    this.age = age;
}

Person.prototype.sayName = function() {
    console.log("My name is " + this.name);
}

function Student(name, age, score) {
    this.score = score;
}

Student.prototype = new Person();

var tom = new Student("Tom", 18, 90);
tom.sayName(); // 输出 "My name is Tom"

在上面的例子中,我们定义了两个构造函数:PersonStudentPerson表示人员基类,拥有nameage两个属性,以及sayName方法。StudentPerson的子类,同时拥有score属性,通过原型链从Person中继承了属性和方法。其中,通过将Student.prototype指向一个Person实例来实现继承。

3. 借用构造函数继承

借用构造函数继承又称为经典继承,它的实现原理是在子类构造函数中调用父类构造函数,通过callapply方法改变上下文,从而实现属性的继承。

下面是一个通过借用构造函数继承实现的示例:

function Person(name, age) {
    this.name = name;
    this.age = age;
}

function Student(name, age, score) {
    Person.call(this, name, age);
    this.score = score;
}

var tom = new Student("Tom", 18, 90);
console.log(tom.name); // 输出 "Tom"
console.log(tom.age);  // 输出 18
console.log(tom.score);// 输出 90

在上面的例子中,我们同样定义了PersonStudent这两个构造函数,但是在Student中调用了Person的构造函数,并且将this指向了当前的Student实例,这样就实现了属性的继承。

总结

在Javascript中,继承是实现代码复用的重要方法,可以通过原型链继承和借用构造函数继承两种方式来实现。其中,原型链继承适合通过实例方法和原型属性实现继承,而借用构造函数继承适合通过实例属性和方法实现继承。我们可以根据具体的情况选择不同的继承方式来实现代码的复用。

本文链接:http://task.lmcjl.com/news/8774.html

展开阅读全文