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的开源工具PACKER2.0.2
Nov 04 Javascript
禁止F5等快捷键的JS代码
Mar 06 Javascript
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
Jun 14 Javascript
JavaScript设计模式之单件模式介绍
Dec 28 Javascript
input 禁止输入特殊字符的四种实现方式
Aug 24 Javascript
React-Native 组件之 Modal的使用详解
Aug 08 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
Apr 25 Javascript
React实现全局组件的Toast轻提示效果
Sep 21 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
Oct 11 Javascript
解决vue 退出动画无效的问题
Aug 09 Javascript
JavaScript严格模式不支持八进制的问题讲解
Nov 07 Javascript
TS 类型收窄教程示例详解
Sep 23 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
php生成shtml类用法实例
2014/12/09 PHP
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
一个简单的JS时间控件示例代码(JS时分秒时间控件)
2013/11/22 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
基于模板引擎Jade的应用(详解)
2017/12/12 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
2018/07/13 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
python range实例用法分享
2020/02/06 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
软件测试工程师结构化面试题库
2016/11/23 面试题
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
电气自动化自荐信
2013/10/10 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
岗位聘任报告
2015/03/02 职场文书
承诺书范本大全
2015/05/04 职场文书
发票退票证明
2015/06/24 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS
解析redis hash应用场景和常用命令
2021/08/04 Redis