原型和原型链
原型
定义
原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先。
通过该构造函数产生的对象,可以继承该原型的属性和方法。
换而言之,与python和Java中的父类有一定的相似性。
获取原型的方式: Object.getPrototypeOf(F)或者 F.__proto__属性;
function X(){} function Y(){} console.log(Object.getPrototypeOf(X) === Object.getPrototypeOf(Y)); // 同一个父亲
console.log(Object.getPrototypeOf(X));


create(prototype)方法:
这是对象的方法,用于为对象指定自己的原型,可以定义为null。
原型定义为null后,数据就是一个完全的孤立对象了。
let a = {uu:10};
console.log(Object.getPrototypeOf(a));
let b = Object.create(null);
console.log(Object.getPrototypeOf(b));


prototype属性
prototype是函数独有的属性。任何函数在创建的时候,其实会默认同时创建该函数的prototype对象。这个函数的原型对象一般具有constructor和__proto__属性。
函数实例的__proto__属性就是函数本身的prototype属性。
f1.__proto__ === Foo.prototype
__proto__和constructor属性
__proto__是所有对象都有的属性,它指向对象的原型。
constructor是从一个对象指向一个函数,含义就是指向该对象的构造函数,每个对象都有构造函数。
Object.getPrototypeOf(object)
给定对象的原型。如果没有继承属性,则返回 null
原型链
表示原型的继承关系,可以看作原型的族谱。


这主要是笔记

浙公网安备 33010602011771号