举例说明JavaScript中基于原型链的对象编程实践。
时间: 2024-03-23 22:37:29 浏览: 54
JavaScript原型链示例分享
在 JavaScript 中,对象的属性和方法都是通过原型链继承而来的。这意味着每个对象都有一个指向其原型的内部链接,可以通过它来访问原型对象的属性和方法。下面是一个基于原型链的对象编程的例子:
```javascript
// 定义一个 Animal 构造函数
function Animal(name) {
this.name = name;
}
// 给 Animal 的原型对象添加一个 sayHi 方法
Animal.prototype.sayHi = function() {
console.log('Hi, my name is ' + this.name);
}
// 定义一个 Dog 构造函数,继承 Animal
function Dog(name, breed) {
Animal.call(this, name); // 调用 Animal 的构造函数,设置 name 属性
this.breed = breed;
}
// 使用 Object.create() 方法继承 Animal 的原型对象
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog; // 修复构造函数指向
// 给 Dog 的原型对象添加一个 bark 方法
Dog.prototype.bark = function() {
console.log('Woof!');
}
// 创建一个 Dog 实例
var myDog = new Dog('Buddy', 'Golden Retriever');
// 调用继承自 Animal 的 sayHi 方法
myDog.sayHi(); // 输出 "Hi, my name is Buddy"
// 调用自己定义的 bark 方法
myDog.bark(); // 输出 "Woof!"
```
在这个例子中,我们定义了一个 Animal 构造函数,它有一个 name 属性和一个 sayHi 方法。然后,我们定义了一个 Dog 构造函数,它继承自 Animal,并添加了一个 breed 属性和一个 bark 方法。使用 Object.create() 方法,我们将 Dog 的原型对象设置为 Animal 的原型对象,从而实现原型链继承。最后,我们创建了一个 Dog 实例,并调用了继承自 Animal 的 sayHi 方法和自己定义的 bark 方法。
阅读全文