JavaScript原型和原型链

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript原型和原型链相关的知识,希望对你有一定的参考价值。

一、对象与函数的关系

1.对象是函数创建,函数也是一种对象。

2.对象的创建方式

2.1.Object构造函数创建对象new Object();

2.2.字面量创建对象var x = new();其本质就是new Object方式创建。

2.3.通过工厂模式创建,在方法中使用new Object();可以创建多个对象。

2.4.使用构造函数创建对象。

2.5.使用原型创建对象。

2.6.使用构造函数和原型创建对象。

2.7使用Object.create();创建对象。

3.函数、对象、原型、原型链

1.每个函数都有一个prototype,每一个对象都有一个__proto__。

2.__proto__(隐式原型)与prototype(显式原型)。

隐式原型:每一个函数在创建之后都会拥有一个名为prototype的属性,这个属性指向函数的原型对象。

显示原型:javascript中任意对象都有一个内置属性[[prototype]],在ES5之前没有标准的方法访问这个内置属性,但是大多数浏览器都支持通过__proto__来访问。

关系:隐式原型指向创建这个对象的函数(constructor)的prototype(显示原型)

作用:显式原型的作用:用来实现基于原型的继承与属性的共享;隐式原型的作用:构成原型链,同样用于实现基于原型的继承。举个例子,当我们访问obj这个对象中的x属性时,如果在obj中找不到,那么就会沿着__proto__依次查找。

 

以上是关于JavaScript原型和原型链的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript对象原型链继承和闭包

JavaScript对象原型链继承闭包

javascript原型,原型链 有啥特点

javaScript原型和原型链

JavaScript扩展原型链浅析

上帝视角一文理解JavaScript原型和原型链