溫馨提示×

JS中prototype怎么使用

小億
174
2023-08-18 04:14:36
欄目: 編程語言

在 JavaScript 中,每個對象都有一個 prototype 屬性,可以通過 Object.prototype 來訪問。prototype 屬性是一個指向原型對象的指針,它包含了共享給所有實例對象的屬性和方法。通過原型對象,可以實現對象之間的繼承和共享。

可以通過以下幾種方式來使用 prototype

  1. 構造函數的 prototype 屬性:通過給構造函數的 prototype 屬性添加屬性和方法,可以使得通過該構造函數創建的所有實例對象都共享這些屬性和方法。
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayHello = function() {
console.log("Hello, my name is " + this.name);
};
var person1 = new Person("John", 25);
person1.sayHello(); // 輸出 "Hello, my name is John"
  1. 實例對象的 __proto__ 屬性:每個實例對象都有一個 __proto__ 屬性,它指向構造函數的 prototype 屬性。通過實例對象的 __proto__ 屬性,可以訪問到原型對象的屬性和方法。
console.log(person1.__proto__ === Person.prototype); // 輸出 true
person1.__proto__.sayHello(); // 輸出 "Hello, my name is John"
  1. Object.create() 方法:可以使用 Object.create() 方法創建一個新對象,新對象的原型對象就是作為參數傳入的對象。
var personProto = {
sayHello: function() {
console.log("Hello, my name is " + this.name);
}
};
var person1 = Object.create(personProto);
person1.name = "John";
person1.age = 25;
person1.sayHello(); // 輸出 "Hello, my name is John"

需要注意的是,prototype 屬性只在構造函數中存在,而 __proto__ 屬性和 Object.create() 方法在所有對象中都存在。此外,通過 prototype 添加的屬性和方法是在實例對象的原型鏈上,而不是直接在實例對象上,因此可以被所有實例對象共享。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女