原型

一:你是如何理解js 中的原型的

1.原型是什么?

我们js中  所有的的函数 包括原生的,和自定的  都默认有一个 prototype属性,这属性给我们指向了一个对象,就是原型对象,我们可以通过原型对象来添加属性和方法。

2. 原型中重要的几个要素

a. prototype(显示原型)      通过它我们可以找到函数所对应的原型对象

b. constructor                此属性存在每个函数的原型对象中, 我们可以通过它找到指定的原函数

c. __proto__  隐式原型)      当我们实例化一个对象(函数)时, 此函数自动拥有了__proto__ 属性, 且它的值是构造函数的prototype的值,也就是此函数的原型对象。

二:请解释一下原型链的原理

说到原型链,我用一个最简单的例子来说明:

首先我们定义一个函数,并且在函数中声明若干变量,同时我们通过prototype 属性在函数的原型对象中声明若干变量。

接着我们将函数实例化,这是此函数就自动拥有了__proto__ 属性(隐式原型)。当调用我们函数中声明的变量, 其中查找的过程是 首先到函数本身去找, 如果找到即返回, 如果没找到 那么根据__proto__ 去我们的原型中查找,找到即返回。 如果还没找到,再根据原型对象中的 __proto__ 继续往上一级对象中查找, 以此类推,一直找到最顶级的 Object 还没有的话, 那么会返回undefined 。

三:如何理解原型继承

基于咱们原型链的原理,就可以证明函数和其原型以及上一级原型对象存在一种继承的关系,正是因为存在这种关系,我们才能够通过原型链的原理找到我们想要的属性或者方法

0000pt�ݖ�

你可能感兴趣的:(原型)