以下是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"
在上面的例子中,我们定义了两个构造函数:Person
和Student
。Person
表示人员基类,拥有name
和age
两个属性,以及sayName
方法。Student
是Person
的子类,同时拥有score
属性,通过原型链从Person
中继承了属性和方法。其中,通过将Student.prototype
指向一个Person
实例来实现继承。
3. 借用构造函数继承
借用构造函数继承又称为经典继承,它的实现原理是在子类构造函数中调用父类构造函数,通过call
或apply
方法改变上下文,从而实现属性的继承。
下面是一个通过借用构造函数继承实现的示例:
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
在上面的例子中,我们同样定义了Person
和Student
这两个构造函数,但是在Student
中调用了Person
的构造函数,并且将this
指向了当前的Student
实例,这样就实现了属性的继承。
总结
在Javascript中,继承是实现代码复用的重要方法,可以通过原型链继承和借用构造函数继承两种方式来实现。其中,原型链继承适合通过实例方法和原型属性实现继承,而借用构造函数继承适合通过实例属性和方法实现继承。我们可以根据具体的情况选择不同的继承方式来实现代码的复用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript 中对象的继承〔转贴〕 - Python技术站