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 高级篇之闭包、模拟类,继承(五)
Apr 07 Javascript
js document.write()使用介绍
Feb 21 Javascript
jQuery实现checkbox全选的方法
Jun 10 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
Jun 02 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 jQuery
JS实现的走迷宫小游戏完整实例
Jul 19 Javascript
vue移动端项目缓存问题实践记录
Oct 29 Javascript
详解Vue源码中一些util函数
Apr 24 Javascript
JS实现的自定义map方法示例
May 17 Javascript
layui默认选中table的CheckBox复选框方法
Sep 19 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
Jun 22 Javascript
Vite和Vue CLI的优劣
Jan 30 Vue.js
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版微信自定义回复功能示例
2016/12/05 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
python sorted函数的小练习及解答
2019/09/18 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
Python如何定义接口和抽象类
2020/07/28 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
用html5的canvas画布绘制贝塞尔曲线完整代码
2013/08/14 HTML / CSS
香港交友网站:be2香港
2018/07/22 全球购物
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
红旗团支部事迹材料
2014/01/27 职场文书
学校门卫岗位职责
2014/03/16 职场文书
小露珠教学反思
2014/04/30 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
Python机器学习之决策树和随机森林
2021/07/15 Javascript