原型和原型链

原型

定义

原型是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

 

原型链

表示原型的继承关系,可以看作原型的族谱。

 

 

 

posted @ 2020-12-01 22:33  SvenWayne  阅读(57)  评论(0)    收藏  举报