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 相关文章推荐
免费空间广告万能消除代码
Sep 04 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
Sep 13 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
Jul 23 Javascript
jQuery的context属性用法实例
Dec 27 Javascript
JS实现为表格动态添加标题的方法
Mar 31 Javascript
js手机号批量滚动抽奖实现代码
Apr 17 Javascript
jQuery插件DataTables分页开发心得体会
Aug 22 jQuery
Angular2监听页面大小变化的解决方法
Oct 09 Javascript
Javascript实现运算符重载详解
Apr 07 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
Sep 21 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
Feb 21 Javascript
node.js中path路径模块的使用方法实例分析
Feb 13 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
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
jqeury eval将字符串转换json的方法
2011/01/20 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
React Router基础使用
2017/01/17 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
Python的collections模块真的很好用
2021/03/01 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
家长评语大全
2014/01/22 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
推普标语口号大全
2015/12/26 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏
Django框架中表单的用法
2022/06/10 Python