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 scrollTop正解使用方法
Nov 14 Javascript
jQuery遍历对象、数组、集合实例
Nov 08 Javascript
js实现的奥运倒计时时钟效果代码
Dec 09 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
Jan 25 Javascript
基于socket.io+express实现多房间聊天
Mar 17 Javascript
AngularJS入门教程之控制器详解
Jul 27 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
Dec 08 Javascript
JavaScript获取URL参数的方法之一
Mar 24 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
Mar 08 Javascript
微信小程序实现换肤功能
Mar 14 Javascript
9102年webpack4搭建vue项目的方法步骤
Feb 20 Javascript
这样回答继承可能面试官更满意
Dec 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
PHP注释实例技巧
2008/10/03 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
深入浅析php json 格式控制
2015/12/24 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
项目实践之javascript技巧
2007/12/06 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
JS去掉第一个字符和最后一个字符的实现代码
2014/02/20 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
js循环map 获取所有的key和value的实现代码(json)
2018/05/09 Javascript
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
浅析VUE防抖与节流
2020/11/24 Vue.js
原生js实现表格循环滚动
2020/11/24 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
Python中for循环详解
2014/01/17 Python
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
python实现数据库跨服务器迁移
2018/04/12 Python
python求最大连续子数组的和
2018/07/07 Python
python实现PCA降维的示例详解
2020/02/24 Python
PyTorch加载自己的数据集实例详解
2020/03/18 Python
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
中专毕业生自我鉴定
2013/11/21 职场文书
普师专业个人自荐信范文
2013/11/26 职场文书
公司经营目标责任书
2015/01/29 职场文书
人事文员岗位职责
2015/02/04 职场文书
大学生毕业个人总结
2015/02/15 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers