搜索
写经验 领红包

原型js的理解(简述javascipt原型和原型链有什么特点)

导语:javascript自学记录:理解原型模式

6.2.3 原型模式

创建:

function Person(){};Person.prototype.姓名 = &34;;Person.prototype.年龄 = 38;Person.prototype.工作 = &34;;Person.prototype.sayName = function () {    alert(this.姓名);}var person1 = new Person();person1.sayName();      // 伍德春var person2 = new Person();person2.sayName();      // 伍德春

上述代码中,Person函数使用prototype属性增加的属性与方法,都是属于共享的,多个实例化的对象访问的都是相同的属性与方法。

可以使用函数的prototype.isPrototypeOf方法来确定关系,为true则表示有关系。

Person.prototype.isPrototypeOf(实例化对象)

ECMAScrtipt5新增加的方法:

alert(Object.getPrototypeOF(实例化对象).name);// 使用Object.getPrototypeOf(person1)能得到函数原型属性,再访问该原型的姓名属性alert(Object.getPrototypeOf(person1).姓名);// 伍德春// 实例化对象可以直接通过属性访问共享的属性alert(person1.姓名);      // 伍德春// 新增加一个非共享的姓名属性person1.姓名 = &34;;// 通过getPrototypeOf方式访问到的是共享的属性alert(Object.getPrototypeOf(person1).姓名);   // 伍德春// 此时再通过实例化访问属性时,访问到的已经是新建的非共有的属性了alert(person1.姓名);      // 新增的实例的私有属性 李慧// 通过delete方法删除实例化的属性,可以恢复被屏蔽了的共享的属性delete person1.姓名;alert(person1.姓名);

本文内容由小芦整理编辑!