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 相关文章推荐
Google Map Api和GOOGLE Search Api整合实现代码
Jul 18 Javascript
从阶乘函数对比Javascript和C#的异同
May 31 Javascript
jQuery javaScript捕获回车事件(示例代码)
Nov 07 Javascript
封装好的javascript前端分页插件pagination
Jan 04 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
Jun 13 Javascript
基于jQuery实现仿微博发布框字数提示
Jul 27 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
Jul 10 Javascript
微信小程序之前台循环数据绑定
Aug 18 Javascript
工作中常用到的ES6语法
Sep 04 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
May 27 Javascript
微信小程序wxs实现吸顶效果
Jan 08 Javascript
微信小程序之高德地图多点路线规划过程示例详解
Jan 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
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
jQuery中wrapAll()方法用法实例
2015/01/16 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
python实现自动化上线脚本的示例
2019/07/01 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
Python3实现飞机大战游戏
2020/04/24 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
医学生自我鉴定范文
2013/11/08 职场文书
竞职演讲稿范文
2014/01/11 职场文书
初级会计求职信范文
2014/02/15 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
创先争优活动心得体会
2014/09/04 职场文书
北京爱情故事观后感
2015/06/12 职场文书
「Manga Time Kirara MAX」2022年5月号封面公开
2022/03/21 日漫