js原型基本使用

为什么要使用原型设计?

利用构造函数在不使用原型设计的时候,无论是字段还是函数属性在堆内存中都是各自独立占用一块内存,互不干扰。

试想有这样一种情形,各个实例需要共享同一个字段或者同一个函数属性,即各个实例针对这个属性共享一块内存。怎么办?

prototype:

引用类型中都有prototype属性,该属性指向一个对象。

1.1不设置原型时Student的内存表现


1.2不设置原型时Student的内存表现

js原型基本使用_第1张图片
给Student设置原型


js原型基本使用_第2张图片
设置原型后的内存表现

//访问原型

alert(stu1.__proto__==Student.prototype);//返回YES.

实例和类的原型是一个原型,只不过他们访问的方式不一样,原型都是obj。

你可能感兴趣的:(js原型基本使用)