Javascript学习笔记6 prototype的提出


Posted in Javascript onJanuary 11, 2010

首先我们继续上文的代码,我们来把这段代码延伸一下:

<script type="text/javascript"> 
var Person = function (name, age) { 
this.name = name; 
this.age = age; 
this.Introduce = function () { 
alert("My name is " + this.name + ".I'm " + this.age); 
}; 
}; 
var person1 = new Person("飞林沙", 21); 
var person2 = new Person("kym", 26); 
alert(person1.Introduce == person2.Introduce); 
</script>

结果弹出false。也就是说,这两个对象的方法是不同的方法。那么我们知道,在C#中,每个对象会维护着一个方法表,可是方法表应该指向同一块地址。如果是这样的话,那当我们声明了100个对象,是不是要建立100个对象拷贝,对空间是不是一个很大的浪费呢?

于是我们就想了这样的解决办法,用prototype:

<script type="text/javascript"> 
var Person = function (name, age) { 
this.name = name; 
this.age = age; 
}; 
Person.prototype.Introduce = function () { 
alert("My name is " + this.name + ".I'm " + this.age); 
} 
var person1 = new Person("飞林沙", 21); 
var person2 = new Person("kym", 26); 
alert(person1.Introduce == person2.Introduce); 
</script>

这样就可以了。所以你还会再说是否用prototype都是一样的么?其实我以前也是这么理解的,在这次偶然的试验中看到了这个问题。
Javascript 相关文章推荐
javascript 控制 html元素 显示/隐藏实现代码
Sep 01 Javascript
Jquery 插件开发笔记整理
Jan 17 Javascript
jquery.idTabs 选项卡使用示例代码
Sep 03 Javascript
js小数运算出现多位小数如何解决
Oct 08 Javascript
jQuery实现图片向左向右切换效果的简单实例
May 18 Javascript
省市选择的简单实现(基于zepto.js)
Jun 21 Javascript
JS实现鼠标滑过显示边框的菜单效果
Sep 21 Javascript
纯js实现手风琴效果代码
Apr 17 Javascript
node前端开发模板引擎Jade的入门
May 11 Javascript
Vue+element-ui 实现表格的分页功能示例
Aug 18 Javascript
微信小程序时间标签和时间范围的联动效果
Feb 15 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
Sep 26 Javascript
Javascript学习笔记5 类和对象
Jan 11 #Javascript
Javascript学习笔记4 Eval函数
Jan 11 #Javascript
Javascript学习笔记2 函数
Jan 11 #Javascript
Javascript学习笔记1 数据类型
Jan 11 #Javascript
IE bug table元素的innerHTML
Jan 11 #Javascript
javascript instanceof 与typeof使用说明
Jan 11 #Javascript
javascript call方法使用说明
Jan 11 #Javascript
You might like
php批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
javascript prototype,executing,context,closure
2008/12/24 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
vue如何从接口请求数据
2017/06/22 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
Python随机数函数代码实例解析
2020/02/09 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
小区保洁员岗位职责
2015/04/10 职场文书
立项申请报告范本
2015/05/15 职场文书