JavaScriptのプロトタイプ
11131 ワード
導入
JavaScriptは、プロパティを使用してプロトタイプを使用するプロトタイプベースの言語、メソッドの検索とコードの再利用性を継承します.このポストの
プロトタイプとプロトタイプチェーン
JavaScriptの
(数字、文字列、boolean )、その他のオブジェクト型(配列、オブジェクトリテラル、関数).
Number
に包まれ、文字列はString
で包まれており、BooleansはBoolean
で包まれています.Array
で包まれ、オブジェクトはObject
で包まれ、機能はFunction
で包まれます.Object
と呼ばれるグローバルオブジェクトです.Object.getPrototypeOf()
のメソッドを使用できます.const arr = [1, 2, 3];
const arrWrapperProto = Object.getPrototypeOf(arr);
console.log(arrWrapperProto); // Array
const objectProto = Object.getPrototypeOf(arrWrapperProto);
console.log(objectProto); // Object
const objectParentProto = Object.getPrototypeOf(objectProto);
console.log(objectParentProto); // null
プロパティ、メソッド検索
プロトタイプの継承
const person = {
isTalkative: true,
talk() {
console.log("Talking...");
},
};
const student = {
name: "John",
age: 12,
};
Object.setPrototypeOf(student, person);
console.log(student.name); // John
console.log(student.isTalkative); // true
student.talk(); // Talking...
console.log(Object.getPrototypeOf(student) === person); // true
Object.setPrototypeOf()
を使用し、学生のプロトタイプを人として設定します.Object
であり、プロトタイプはObject
です.Object
からすべての特性と方法にアクセスするでしょう.オブジェクトの作成
function Student(name, age) {
this.name = name;
this.age = age;
}
Student.prototype.isTalkative = true;
Student.prototype.talk = function () {
console.log("Talking...");
};
const john = new Student("John", 12);
console.log(john.age); // 12
john.talk(); // Talking...
const person = {
isHappy: true,
introduce() {
console.log(`Hi I'm ${this.name}`);
},
};
const john = Object.create(person);
john.name = "John";
console.log(john.isHappy); // true
john.introduce(); // Hi I'm John
console.log(Object.getPrototypeOf(john) === person); // true
Object
はここで、JohnのプロトタイプをPersonオブジェクトとして設定します.結論
Reference
この問題について(JavaScriptのプロトタイプ), 我々は、より多くの情報をここで見つけました https://dev.to/mvganeshkumar06/prototypes-in-javascript-40mdテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol