js修改原型的属性使用介绍范文

js修改原型的属性使用介绍范文

ID:46048206

大小:62.00 KB

页数:4页

时间:2019-11-20

js修改原型的属性使用介绍范文_第1页
js修改原型的属性使用介绍范文_第2页
js修改原型的属性使用介绍范文_第3页
js修改原型的属性使用介绍范文_第4页
资源描述:

《js修改原型的属性使用介绍范文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、原型(prototype)定义了特定类型的所有实例都可以访问的属性和方法,很多些情况下需要重新对原型中的属性赋值,下面为大家介绍下如何修改原型在javascript中原型(prototype)定义了特定类型的所有实例都可以访问的属性和方法,很多些情况下需要重新对原型中的属性赋值,如果方法错误会导致一些意想不到的情况(仅仅是对像我这样的新手奋斗),下面通过测试对这部分知识做一个简单的总结。基本类型定义如下:代码如下:functionPerson(){}Person,prototype二{construetor:Person,name:person,age:100,friends:[

2、a,b],getName:function(){returnthis,name;}};定义两个Person的实例,修改实例中的name属性(该属性是在prototype中定义的),测试代码如下代码如下:varpl二newPerson();varp2=newPerson();document.write(pl.name+br/);//persondocument.write(p2.name+br/);//personpl.name=pl;document.write(pl.name+br/);//pldocument.write(p2.name+br/);//persondocum

3、ent.write(pl.hasOwnProperty(name)+br/);//true属于对象document.write(p2.hasOwnProperty(name)+br/);//false属于原型document.write(Object.keys(pl)+br/);//namedocument.write(Object.keys(p2)+br/);//空document.write(Object.getOwnPropertyNames(Person,prototype)+br/);//construetor,name,age,friends,getNamedocum

4、ent.write(Person,prototype.name+br/);//person经过测试可以发现pl.name二pl并不是修改了name的值而是在实例pl中新增加了一个name属性覆盖了prototype中的name属性,从后续的判断中就可以看出这时候pl的name属性已经是一个实例属性而不是原型属性,后面的Object,keys(pl)也可以看出pl这个实例中多了一个name属性而p2中没有。在js中所有的传递都是值传递,这个值可以是个指向引用类型的指针,所以等号并不意味着修改这个引用对象,而是切换了原来的引用关系,下面再通过代码说明这个问题代码如下:varobj=n

5、ewObject();obj・name二obj;functionchangeObj(o){o.name二changed;o二newObject();o.name=newObj;}changeObj(obj);document•write(obj.name);//changed在changedObj方法中o=newObject()并没有修改参数o的值,而是切断了原来的引用关系,所以结果并不是newObj而是changed接下来测试一下修改第一个例子中prototype屮的friends属性,这个属性是一个引用类型代码如下:pl.friends・push(c);document・wr

6、ite(pl.fTiends+br/);//a,b,cdocument・write(p2・friends+br/);//a,b,cpl・friends二[x,y,z];document.write(p1.friends+br/);//x,y,zdocument・write(p2・fTiends+br/);//a,b,cdocument.write(pl.hasOwnProperty(friends)+br/);//true属于对象document.write(p2.hasOwnProperty(friends)+br/);//false属于原型document.write(Obj

7、ect.keys(pl)+br/);//name,frienddocument.write(Object.keys(p2)+br/);//空document.write(Object.getOwnPropertyNames(Person,prototype)+br/);//construetor,name,age,friends,getNamedocument.write(Person,prototype.friends+br/);//a,b,c这次测试结果与第一次的测试基本相同

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。