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 相关文章推荐
Jquery升级新版本后选择器的语法问题
Jun 02 Javascript
用jquery的方法制作一个简单的导航栏
Jun 23 Javascript
JS中捕获console.log()输出的方法
Apr 16 Javascript
AngularJS控制器controller正确的通信的方法
Jan 25 Javascript
AngularGauge 属性解析详解
Sep 06 Javascript
vue+swiper实现组件化开发的实例代码
Oct 26 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
Feb 22 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
Jul 06 Javascript
vue获取form表单的值示例
Oct 29 Javascript
vuex中store存储store.commit和store.dispatch的用法
Jul 24 Javascript
小程序实现可拖动的悬浮按钮
Sep 07 Javascript
JS闭包原理及其使用场景解析
Dec 03 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
自动跳转中英文页面
2006/10/09 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
固定网页背景图同时保持图片比例的思路代码
2013/08/15 Javascript
Node.js文件操作详解
2014/08/16 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
解决vue 更改计算属性后select选中值不更改的问题
2018/03/02 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
vue 单页应用和多页应用的优劣
2020/10/22 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
python+mysql实现简单的web程序
2014/09/11 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
Python实现k-means算法
2018/02/23 Python
Python查看微信撤回消息代码
2018/06/07 Python
python3实现磁盘空间监控
2018/06/21 Python
python中pip的安装与使用教程
2018/08/10 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
五种Python转义表示法
2020/11/27 Python
linux面试题参考答案(10)
2016/10/26 面试题
代码中finally中的代码会不会执行
2012/02/06 面试题
图书室管理制度
2014/01/19 职场文书
车间核算员岗位职责
2014/07/01 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
电子商务实训报告总结
2014/11/05 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书