js复习笔记(原型与原型链)

1)、所有的引用类型都具有对象的特性、即可随意扩展属性(null除外!)

        例如:var a = {};

                    a.b = 2;a.c = function(){alert(1)};对对象a扩展了b,c属性。

      所有的引用类型都有一个_proto_属性(隐原型)。其为一个普通对象。


js复习笔记(原型与原型链)_第1张图片

所有的函数都有一个显原型prototype,也是指向一个普通的对象。


js复习笔记(原型与原型链)_第2张图片

所有引用对象的隐式原型(_proto_)指向其构造函数的显式原型(prototype).


js复习笔记(原型与原型链)_第3张图片

!原型链规则,当我们去获取一个对象的属性时,如过从其已有的属性中找不到,则会从其隐式原型链中寻找(依次向其祖先链中寻找)


js复习笔记(原型与原型链)_第4张图片

instansof用于判断对象属于哪个构造函数的实例的方法

例如 a = {},a其实是Object的一个实例,所以a instansof Object  ===true;


js复习笔记(原型与原型链)_第5张图片

instansof 的判断逻辑:


js复习笔记(原型与原型链)_第6张图片

你可能感兴趣的:(js复习笔记(原型与原型链))