js中prototype用法有哪些

js
小億
95
2023-07-27 22:24:12

在 JavaScript 中,prototype 是一個(gè)特殊的屬性,用于指向?qū)ο蟮脑?。原型是一個(gè)對(duì)象,其他對(duì)象可以通過原型繼承它的屬性和方法。

以下是在 JavaScript 中使用 prototype 的一些常見用法:

  1. 原型繼承(Prototype Inheritance):可以使用 prototype 屬性來實(shí)現(xiàn)對(duì)象之間的繼承關(guān)系。通過將一個(gè)對(duì)象的 prototype 屬性指向另一個(gè)對(duì)象,可以使得一個(gè)對(duì)象繼承另一個(gè)對(duì)象的屬性和方法。
function Person(name) {
this.name = name;
}
Person.prototype.sayHello = function() {
console.log('Hello, my name is ' + this.name);
};
var john = new Person('John');
john.sayHello(); // 輸出:Hello, my name is John
  1. 原型鏈(Prototype Chain):每個(gè)對(duì)象都有一個(gè)原型,而原型本身也是一個(gè)對(duì)象,也有自己的原型。通過原型鏈,可以訪問到原型鏈上所有對(duì)象的屬性和方法。
function Animal() {}
Animal.prototype.eat = function() {
console.log('Eating...');
};
function Dog() {}
Dog.prototype = Object.create(Animal.prototype); // 繼承 Animal 的原型
Dog.prototype.bark = function() {
console.log('Barking...');
};
var dog = new Dog();
dog.eat(); // 輸出:Eating...
dog.bark(); // 輸出:Barking...
  1. 使用原型添加共享的屬性和方法:將不變的屬性和方法添加到原型上,可以節(jié)省內(nèi)存并且讓對(duì)象共享這些屬性和方法。
function Calculator() {}
Calculator.prototype.add = function(a, b) {
return a + b;
};
Calculator.prototype.subtract = function(a, b) {
return a - b;
};
var calculator1 = new Calculator();
console.log(calculator1.add(1, 2)); // 輸出:3
var calculator2 = new Calculator();
console.log(calculator2.subtract(5, 3)); // 輸出:2

這些只是使用 prototype 的一些常見用法,還有其他更多高級(jí)的用法,例如使用 Object.create() 創(chuàng)建對(duì)象、使用 constructor 屬性獲取對(duì)象的構(gòu)造函數(shù)等等。

0