在JavaScript中,原型(Prototype)和继承是面向对象编程的两个核心概念。
基础概念:
prototype
,这个属性指向一个对象,这个对象包含了可以被所有实例共享的属性和方法。__proto__
属性(也就是它的构造函数的prototype
对象)上查找,这个过程会一直递归向上,直到找到该属性或者到达原型链的顶端(null
)。优势:
类型:
call()
或apply()
方法将子类实例作为上下文。class
语法,使得JavaScript的继承更加直观和易于理解。应用场景:
常见问题及解决方法:
示例代码(ES6类继承):
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(this.name + ' makes a noise.');
}
}
class Dog extends Animal {
constructor(name) {
super(name); // 调用父类构造函数
}
speak() {
console.log(this.name + ' barks.');
}
}
let dog = new Dog('Rex');
dog.speak(); // 输出 "Rex barks."
在这个示例中,Dog
类继承了Animal
类,并重写了speak
方法。通过使用extends
关键字和super
函数,我们可以轻松地实现继承并保持代码的清晰性。
领取专属 10元无门槛券
手把手带您无忧上云