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循环滚动展示代码 可应用到文字和图片上
May 11 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
Dec 07 Javascript
js取整数、取余数的方法
May 11 Javascript
JavaScript function 的 length 属性使用介绍
Sep 15 Javascript
javascript中Date()函数在各浏览器中的显示效果
Jun 18 Javascript
JS作为值的函数用法示例
Jun 20 Javascript
AngularJs bootstrap搭载前台框架——准备工作
Sep 01 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
Nov 01 Javascript
vue2.0模拟锚点的实例
Mar 14 Javascript
详解vue组件中使用路由方法
Feb 12 Javascript
Vue实现商品飞入购物车效果(电商项目)
Nov 26 Javascript
koa2的中间件功能及应用示例
Mar 05 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
基于js disabled=&quot;false&quot;不起作用的解决办法
2013/06/26 Javascript
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
js动态往表格的td中添加图片并注册事件
2014/06/12 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
Python列表计数及插入实例
2014/12/17 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
用Python实现随机森林算法的示例
2017/08/24 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
财务人员个人自荐信范文
2013/09/26 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
幼儿园门卫制度
2014/01/29 职场文书
农村婚礼主持词
2014/03/13 职场文书
安全生产承诺书范文
2014/05/22 职场文书
扬尘污染防治方案
2014/06/15 职场文书
护士节活动总结
2014/08/29 职场文书
2014旅游局党组书记党建工作汇报材料
2014/11/02 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
先进个人事迹材料
2014/12/29 职场文书
消防宣传语大全
2015/07/13 职场文书
教师节校长致辞
2015/07/31 职场文书