JavaScript的原型链学习研究
2016-07-26 22:45
561 查看
今天在CSDN上看到这么一段代码,感觉有需要学习的东西,在此总给一下。
分析一下:
创建了一个fun类,写了name和age属性。然后new 一个实体a和b,打印a和b的name属性,断开原型链之后,修改属性值无效,即变成引用。
代码如下:
/** * Created by simon.zhang on 2016/7/26. */ var fun=function () {}; fun.prototype={ name:"peter", age:25 }; var a=new fun();//new a var b=new fun();//new b console.log(a.name,b.name);//peter peter fun.prototype.name="simon"; console.log(a.name,b.name);//simon simon //---------------- fun.prototype={};//原型链断开,所有的实例,马上会变成引用(即修改原型的属性值,其值不会改变) console.log(a.name,b.name);//simon simon,a和b引用的还是原来的对象 fun.prototype.name="mary";//重建原型链 var d=new fun(); console.log(d.name);//mary,打印新的name console.log(a.name,b.name);//simon simon,a和b引用的还是原来的对象 fun.constructor.prototype.name="jack";//并不能修改原型的属性值 console.log(d.name);//mary console.log(a.name,b.name);//simon simon,a和b引用的还是原来的对象 //---------------- fun.prototype.name="mary"; fun.prototype.age="24"; var c=new fun(); console.log(c.name,c.age);//mary 24
JavaScript的面向对象Demo代码
/** * Created by simon.zhang on 2016/7/26. */ var Person=function () { }; Person.prototype={ name:"defaultName", age:0, toString:function () { console.log(this.name,this.age); } }; Person.prototype.name="p1"; var p1=new Person(); p1.toString(); Person.prototype.name="p2"; var p2=new Person(); p2.toString(); console.log("----------------------------------"); function P(firstname,lastname) { this.firstname=firstname; this.lastname=lastname; this.toString=function () { console.log(this.firstname,this.lastname); } } person=new P("Bill2","Gates"); person.toString();
相关文章推荐
- javascript中的对象字面量为啥这么酷
- 练习json读取中文
- javascript对文档对象模型DOM的基本操作学习笔记
- JavaScript replace()方法
- 《JavaScript高级程序设计》 - 读书笔记 - 第5章 引用类型
- 在JavaScript中自定义对象
- 详解JSP九大内置对象
- JavaScript的OO思想(一)
- js拖拽效果
- QQZiFramework笔记:entityTable与erp.public.js使用进阶(查询条件、自定义行显示)
- JSP的几个小结
- JavaScript中string对象方法
- JS数组实现队列和堆栈
- 超详细JSTL标签 参考手册
- 爬取熊猫TV,javascript,selenium,模拟点击
- javascript內容向上不間斷滾動
- js注意事项12
- js注意事项11
- JSP中<base href="<%=basePath%>">的作用
- js实例