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 相关文章推荐
JS 容错处理代码, 屏蔽错误信息
Mar 09 Javascript
XHTML-Strict 内允许出现的标签
Dec 11 Javascript
JavaScript计时器示例分析
Feb 05 Javascript
javascript实现简单的二级联动
Mar 19 Javascript
基于javascript实现图片懒加载
Jan 05 Javascript
深入理解JS函数的参数(arguments)的使用
May 28 Javascript
Angular组件化管理实现方法分析
Mar 17 Javascript
vue.js获取数据库数据实例代码
May 26 Javascript
微信小程序学习之数据处理详解
Jul 05 Javascript
Angular中点击li标签实现更改颜色的核心代码
Dec 08 Javascript
vue组件传值的实现方式小结【三种方式】
Feb 05 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
Mar 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
ThinkPHP 表单自动验证运用示例
2014/10/13 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
function, new function, new Function之间的区别
2007/03/08 Javascript
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
js解决movebox移动问题
2016/03/29 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
2018/02/05 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
ajax jquery实现页面某一个div的刷新效果
2021/03/04 jQuery
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
用Python写冒泡排序代码
2016/04/12 Python
简单谈谈python中的语句和语法
2017/08/10 Python
python3 mmh3安装及使用方法
2019/10/09 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
python批量修改文件名的示例
2020/09/27 Python
3个CCIE对一个工程师的面试题
2012/05/06 面试题
年度考核评语
2014/01/19 职场文书
北京英语导游词
2015/02/12 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书