JS的继承方法小结
在JavaScript中,继承是一种重要的概念,它使得代码的复用成为可能。在JS中,有多种实现继承的方式,我们来简单归纳一下最常用的三种方式。
1. 原型继承
原型继承是JavaScript中最基本的一种继承方式。通过修改原型链,实现子类对父类属性和方法的继承。
示例:
function Animal(name) {
this.name = name;
this.showName = function () {
console.log(this.name);
}
}
function Dog(name) {
this.name = name;
}
Dog.prototype = new Animal();
上述代码中,Animal是父类,Dog是子类。当我们实例化一个Dog的对象时,它的原型就指向了Animal的实例。这样,Dog就拥有了Animal中的属性和方法。
2. call继承
call继承是通过调用父类函数的形式,实现子类对父类方法的继承。当一个函数调用call方法时,它的this指向会被替换成传入的第一个参数。这样,我们可以把父类构造器中this指向变成当前子类对象,从而实现继承。
示例:
function Animal(name) {
this.name = name;
this.showName = function () {
console.log(this.name);
}
}
function Dog(name) {
Animal.call(this, name);
}
上述代码中,Dog就继承了Animal的属性和方法。
3. apply继承
apply继承与call继承类似,只是在传参时使用了数组的形式。同样,我们可以通过替换函数调用中的this指向实现继承。
示例:
function Animal(name) {
this.name = name;
this.showName = function () {
console.log(this.name);
}
}
function Dog(name) {
Animal.apply(this, [name]);
}
上述代码中,Dog就同样继承了Animal的属性和方法。
总结
三种继承方式各有优缺点,需要根据实际情况进行选择。原型继承简单易懂;call和apply继承更灵活。在具体使用时,需要结合实例情况进行选择。
以上就是JS的继承方法小结。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js的继承方法小结(prototype、call、apply)(推荐) - Python技术站