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 相关文章推荐
使用TextRange获取输入框中光标的位
Oct 14 Javascript
javascript function、指针及内置对象
Feb 19 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
Nov 19 Javascript
jquery控制页面部分刷新的方法
Jun 24 Javascript
给before和after伪元素设置js效果的方法
Dec 04 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
Apr 17 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
Aug 10 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
Sep 19 Javascript
H5移动端适配 Flexible方案
Oct 24 Javascript
JS字典Dictionary类定义与用法示例
Feb 01 Javascript
koa大型web项目中使用路由装饰器的方法示例
Apr 02 Javascript
浅谈JavaScript浅拷贝和深拷贝
Nov 07 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
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
PHP explode()函数用法、切分字符串
2012/10/03 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
React中的refs的使用教程
2018/02/13 Javascript
详解vue组件基础
2018/05/04 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
Python3中使用PyMongo的方法详解
2017/07/28 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
用pycharm开发django项目示例代码
2019/06/13 Python
Django 重写用户模型的实现
2019/07/29 Python
python属于解释语言吗
2020/06/11 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
韩国爱茉莉太平洋化妆品美国站:Amore Pacific US
2016/10/28 全球购物
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
简单租房协议书
2014/04/09 职场文书
《金子》教学反思
2014/04/13 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
Python如何配置环境变量详解
2021/05/18 Python
Spring中的@Transactional的工作原理
2022/06/05 Java/Android