Javascript中的构造函数与原型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript中的构造函数与原型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1500字,纯文字阅读大概需要3分钟。
内容图文
构造函数
构造函数,是一种特殊的方法。主要用来创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们即构造函数的重载。
示例:
<span style="font-size:18px;">function Box(name,age) { this.name=name; this.age=age; this.run=function(){ return this.name+this.age+'运行中。。。'; }; } var box1=new Box('Lee',100); var box2=new Box('Jack',200); alert(box1.run()); alert(box1 instanceof Box); </span>
下面我们来用途看一下构造函数的声明函数。
原型
我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个对象,它的用途是包含可以由特定类型的所有实例共享的属性和方法。
使用原型的好处可以让所有对象实例共享它所包含的属性和方法。
示例:
<span style="font-size:18px;">function Box(){} Box.prototype.name='Lee'; Box.prototype.age=100; Box.prototype.run=function() { return this.name+this.age+'运行中。。。' }; //下面比较一下原型内的方法地址是否一致: var box1=new Box(); var box2=new Box(); alert(box1.run==box2.run); //返回的结果为true,说明它们的引用地址是一样的。 </span>
用图来看一下原型的声明方式
由图中可以知道,构造函数是在内存中有创建了一个实例,增加了内存占用。而原型模式则是共用了属性和方法,则可以减轻内存的负担。
当然,原型模式创建对象也有自己的缺点,原型中所有属性是被很多实例共享的,共享对于函数非常合适,对于包含基本值得属性也还可以。 但是有的每次实例化的数据需要保留自己的特性,不能共享。这就造成了矛盾。
构造函数+原型模式
为了解决这个问题,可以组合构造函数+原型模式。
<span style="font-size:18px;">function Box(name,age) //不共享的使用构造函数 { this.name=name; this.age=age; this.family=['父亲','母亲','妹妹']; }; Box.prototype={ //共享的使用原型 constructor:Box, run:function(){ return this.name+this.age+this.family; } }; </span>通过对不共享的属性使用构造函数,而对于共享的方法,则用原型,就很好的解决了传参和引用共享的问题。
总结:
JavaScript中的面向对象和.net中的面向对象是差不多的,只是表现形式不同了而已。对比起来还是差不多的。当然,现在还是初次学习,以后还要更不断的学习,来加深认识。
原文:http://blog.csdn.net/mascf/article/details/45291057
内容总结
以上是互联网集市为您收集整理的Javascript中的构造函数与原型全部内容,希望文章能够帮你解决Javascript中的构造函数与原型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。