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 相关文章推荐
解决jquery的datepicker的本地化以及Today问题
May 23 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
Apr 07 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
Jul 03 Javascript
vue解决跨域路由冲突问题思路解析
Nov 03 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
Jan 18 Javascript
AngularJS $http post 传递参数数据的方法
Oct 09 Javascript
axios+Vue实现上传文件显示进度功能
Apr 14 Javascript
javascript之分片上传,断点续传的实际项目实现详解
Sep 05 Javascript
Vue组件简易模拟实现购物车
Dec 21 Vue.js
JavaScript实现H5接金币功能(实例代码)
Feb 22 Javascript
详解JVM系列之内存模型
Jun 10 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 chmod 函数与批量修改文件目录权限
2010/05/10 PHP
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
Python实现备份文件实例
2014/09/16 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
Python 处理数据的实例详解
2017/08/10 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
python 堆和优先队列的使用详解
2019/03/05 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
PyQt QMainWindow的使用示例
2021/03/24 Python
教师党员公开承诺书
2014/03/25 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
新文化运动的口号
2014/06/21 职场文书
2014年文员工作总结
2014/11/18 职场文书
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python
Win2008系统搭建DHCP服务器
2022/06/25 Servers