美文网首页
JavaScript 面向对象入门之 原型

JavaScript 面向对象入门之 原型

作者: 老95 | 来源:发表于2017-04-19 21:22 被阅读0次

原型概念

原型是什么?

原型对象是构造函数在编译阶段,由系统为我们创建出来的一个对象。

执行构造函数代码时,js系统会给这个构造函数创建⼀个原型对象,构造函数中也包含一个prototype属性指向这个原型对象。

原型可以做什么?

1.通过原型对象可以给系统构造函数添加相关的方法和属性(如,数组元素的求和),这样所有通过该类型创建的对象都具有这些自定义的方法和属性。

2.通过原型也可以给自定义的构造函数添加属性、方法,创建出来的对象所对应的属性、方法就是原型中的属性、方法,不需要新开辟内存空间,节约了内存。

原型相关属性、函数

原型属性:通过原型添加在构造函数中的属性

原型方法:通过原型添加在构造函数中的函数

实例属性:直接写在构造函数中的属性

实例方法:直接写在构造函数中的函数

__proto__ / [[prototype]]、constructor、prototype几个属性的含义

__proto__:实例对象中的原型属性,指向创造它的构造函数对应的原型对象(我们无法访问到这个属性)。

constructor:构造函数所对应的原型对象中的⼀个属性,用来指向这个对象所对应的构造函数。

                     构造函数创建出来的对象也有这个属性,同样指向该对象的构造函数

prototype:构造函数中的⼀个属性,指向他所对应的原型对象

in的使用说明

     in运算符可以用来判断,某个对象是否含有某个属性,不管是不是实例属性,返回值是boolean类型,true/false

          语法:属性名字符串in对象名;

hasOwnProperty的使用

      每个实例对象都有一个hasOwnProperty()方法,用来判断某一个属性到底是实例属性,还是继承自prototype对象的属性。返回值boolean类型。

       语法:对象名.hasOwnProperty(属性名字符串);

使用字面量的方式创建对象以及解决constructor问题

      使用构造函数创建的对象的constructor属性指向他的构造函数,使用字面量创建的对象的constructor属性指向Object。

动态原型模式

       将独立的构造函数与其原型对象结合在一起,在构造函数里初始化原型,为其添加方法。

复习资料料:

http://www.cnblogs.com/asqq/archive/2013/02/01/3194993.html

相关文章

网友评论

      本文标题:JavaScript 面向对象入门之 原型

      本文链接:https://www.haomeiwen.com/subject/banhzttx.html