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原型和原型链的主要内容,如果未能解决你的问题,请参考以下文章