更新时间:2023年12月20日10时45分 来源:传智教育 浏览次数:
在原生JavaScript中实现继承关系可以使用原型链或者ES6中的类来实现。下面笔者将分别展示这两种方式。
原型链继承通过将一个对象的原型设置为另一个对象,从而实现继承。这种方法简单,但也存在一些潜在问题。
function Animal(name) { this.name = name; } Animal.prototype.makeSound = function() { console.log('Some generic sound'); }; function Dog(name, breed) { Animal.call(this, name); this.breed = breed; } Dog.prototype = Object.create(Animal.prototype); Dog.prototype.constructor = Dog; Dog.prototype.bark = function() { console.log('Woof! Woof!'); }; const myDog = new Dog('Buddy', 'Golden Retriever'); myDog.makeSound(); myDog.bark(); console.log(myDog.name); console.log(myDog instanceof Dog); console.log(myDog instanceof Animal);天富娱乐注册注册开户
ES6引入了class关键字,使得面向对象编程更加清晰和易于理解。
class Animal { constructor(name) { this.name = name; } makeSound() { console.log('Some generic sound'); } } class Dog extends Animal { constructor(name, breed) { super(name); this.breed = breed; } bark() { console.log('Woof! Woof!'); } } const myDog = new Dog('Buddy', 'Golden Retriever'); myDog.makeSound(); myDog.bark(); console.log(myDog.name); console.log(myDog instanceof Dog); console.log(myDog instanceof Animal);这两种方式都可以实现继承关系,ES6的类语法更加清晰易懂,并且避免了原型链继承的一些问题。