js prototype方法
时间: 2023-11-02 19:57:55 浏览: 87
JavaScript 中的原型(prototype)是一个对象,它用于存储共享属性和方法,可以被其他对象继承。可以使用 prototype 属性来添加新的属性和方法到已有的对象构造函数中。
通过使用原型,可以在 JavaScript 中实现基于类的继承。下面是使用原型创建和扩展对象的示例:
```javascript
// 创建一个构造函数
function Person(name) {
this.name = name;
}
// 在构造函数的原型中添加方法
Person.prototype.sayHello = function() {
console.log("Hello, my name is " + this.name);
};
// 创建一个对象
var person1 = new Person("Alice");
// 调用原型中的方法
person1.sayHello(); // 输出 "Hello, my name is Alice"
// 创建另一个对象
var person2 = new Person("Bob");
person2.sayHello(); // 输出 "Hello, my name is Bob"
```
在上面的示例中,我们定义了一个 `Person` 构造函数,并在其原型上添加了 `sayHello` 方法。然后,我们创建了两个基于 `Person` 的对象 `person1` 和 `person2`,并调用了 `sayHello` 方法。
原型链允许对象继承其父对象的属性和方法。可以通过 `Object.create()` 方法创建一个新对象并将其原型设置为另一个对象,从而实现继承。
```javascript
// 父对象构造函数
function Animal(name) {
this.name = name;
}
// 父对象原型方法
Animal.prototype.sayName = function() {
console.log("My name is " + this.name);
};
// 子对象构造函数
function Dog(name, breed) {
Animal.call(this, name);
this.breed = breed;
}
// 继承父对象的原型
Dog.prototype = Object.create(Animal.prototype);
// 子对象新增方法
Dog.prototype.bark = function() {
console.log("Woof!");
};
// 创建一个 Dog 对象
var dog = new Dog("Max", "Labrador");
// 调用继承的父对象方法和子对象方法
dog.sayName(); // 输出 "My name is Max"
dog.bark(); // 输出 "Woof!"
```
在上面的示例中,我们创建了一个 `Animal` 父对象和一个 `Dog` 子对象。通过调用 `Object.create(Animal.prototype)` 来继承父对象的原型,并且使用 `Animal.call(this, name)` 在子对象构造函数中调用父对象的构造函数。
希望这些示例能够帮助你理解 JavaScript 中的原型方法。如果你有任何进一步的问题,请随时提问!
阅读全文