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 相关文章推荐
用js 让图片在 div或dl里 居中,底部对齐
Jan 21 Javascript
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
Nov 15 Javascript
jquery 操作日期、星期、元素的追加的实现代码
Feb 07 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
JavaScript中三种常见的排序方法
Feb 24 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
Apr 21 Javascript
vue2的todolist入门小项目的详细解析
May 11 Javascript
node.js调用Chrome浏览器打开链接地址的方法
May 17 Javascript
微信小程序实现上传图片功能
May 28 Javascript
node thread.sleep实现示例
Jun 20 Javascript
关于layui时间回显问题的解决方法
Sep 24 Javascript
React冒泡和阻止冒泡的应用详解
Aug 18 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
超级简单的发送邮件程序
2006/10/09 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
解析jQueryEasyUI的使用
2016/11/22 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
python利用dlib获取人脸的68个landmark
2019/11/27 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
自我评价优秀范文分享
2013/11/30 职场文书
企业年度评优方案
2014/06/02 职场文书
实习介绍信范文
2015/05/05 职场文书
五一放假通知怎么写
2015/08/18 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
Python 绘制多因子柱状图
2022/05/11 Python
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS