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 相关文章推荐
PPK 谈 JavaScript 的 this 关键字 [翻译]
Sep 29 Javascript
myFocus slide3D v1.1.0 使用方法与下载
Jan 12 Javascript
js multiple全选与取消全选实现代码
Dec 04 Javascript
通过jQuery源码学习javascript(二)
Dec 27 Javascript
JS连连看源码完美注释版(推荐)
Dec 09 Javascript
JavaScript输入邮箱自动提示实例代码
Jan 13 Javascript
理解jQuery stop()方法
Nov 21 Javascript
jQuery Password Validation密码验证
Dec 30 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
May 03 Javascript
解决vue中虚拟dom,无法实时更新的问题
Sep 15 Javascript
微信小程序自定义导航栏
Dec 31 Javascript
JavaScript实现一键复制内容剪贴板
Jul 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
php框架Phpbean说明
2008/01/10 PHP
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
2012/02/27 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
javascript trie前缀树的示例
2018/01/29 Javascript
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
python实现顺时针打印矩阵
2019/03/02 Python
python实现AES加密与解密
2019/03/28 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
Python配置文件处理的方法教程
2019/08/29 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
教师年终个人总结
2015/02/11 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
法院答辩状格式
2015/05/22 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
python实现自动化群控的步骤
2021/04/11 Python