对js原型对象的理解

一、普通对象和函数对象

在javascript中,分为普通对象和函数对象。

 

总结,凡是通过new Function()创建的对象都是函数对象,其他的都是普通对象。

二、构造函数

 

上面的例子中person1和person2都是Person的实例。这两个实例都有一个constructor(构造函数)属性,该属性(是一个指针)指向Person。即:

三、原型对象

在javascript中,每当定义一个对象时,对象中都会包含一些预定义的属性。其中每个函数对象都有一个prototype属性,这个属性指向函数的原型对象。

本文第一个定律:

那什么是原型对象呢?

我们把上面的例子改一改就容易理解了:

总结:1.Person.prototype.constructor == Person

          2.person1.constructor == Person

          3.原型对象是构造函数的一个实例


四、原型对象作用

那原型对象是用来做什么的呢?主要作用是用于继承。如:

从上面的例子可以看出,通过给Person.prototype设置了一个函数对象的属性,那Person的实例出来的普通对象就继承了这个属性,小问题,上面两个this都指向谁?


所以,两次this在函数执行时都指向person1.


猜你喜欢

转载自blog.csdn.net/songshuzhong/article/details/80301085