JavaScript 原型学习总结


Posted in Javascript onOctober 29, 2010

每个对像都有一个隐慝的属性用于指向到它的父对像(构造对像的函数)的原型(这里称为父原型或隐式原型),并从中继承它的属性和方法 [函数对像除了父原型引用外,还有一个显式的原型引用],在一般情况下,对像的父原型是不可以访问的,而函数对像的显式原型可以通过FunctionName.prototype进行访问 [在FireFox中你可以通过对像的__proto__属性来访问对像的父原型]

这个原型属性本身又是一个Object类型的对像,因此可以给这个原型属性添加任意的属性和方法 让实例对像来继承它们

如: 一个String类型的对像的原型为String.prototype,如果我们想要给String类型的对像添加一些自定义的方法,那我们可以这样来实现(这里以添加一个类式VBscript中的trim方法为例)

String.prototype.trim=function(){ 
return this.replace(/^\s*|\s*$/g,"") 
} 
// " jiangsk540 ".trim();//return "jiagnsk540"

原型除了提供以上的特性之外,它还提供了一群同类实例对像共享属性和方法的机制 [也就相当于静态属性或静态函数,无论用构造函数创建了多少个实例对像,在原型上定义的属性和方法从头到尾只定义了一次,所有实例对像都共享使用这一个属性或方法 但并非和C++或JAVA的静态属性或静态函数的概念相同]
function Class1(name){ 
this.name = name; 
} 
Class1.prototype.show=function(){ 
alert("name="+this.name); 
} 
var m1 = new Class1("jiangsk540"); 
var m2 = new Class1("毛狮子"); 
alert(m1.show===m2.show);//显示 true

动态给构造函数原型添加的属性或方法即可被先前建立的对像立即调用

function Class1(name){ 
this.name = name; 
} 
Class1.prototype.show=function(){ 
alert("name="+this.name); 
} 
var m1 = new Class1("jiangsk540"); 
Class1.prototype.say=function(){ 
alert("Hi"); 
} 
m1.say()//调用成功 
/* 
注意:只有为构造函数的原型添加的属性或方法才能被已经创建的对像立即调用 
如果是改变构造函数原型的引用那么就不能被已经创建的对像立即调用 
*/ 
Class1.prototype={newP:"jiangsk540"}; 
alert(m1.newP)//undefined
Javascript 相关文章推荐
jQuery之浮动窗口实现代码(两种方法)
Sep 08 Javascript
JavaScript 大数据相加的问题
Aug 03 Javascript
jQuery性能优化的38个建议
Mar 04 Javascript
三种取消选中单选框radio的方法
Sep 09 Javascript
jQuery中Ajax的get、post等方法详解
Jan 20 Javascript
javascript获取系统当前时间的方法
Nov 19 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
Sep 02 Javascript
d3.js中冷门却实用的内置函数总结
Feb 04 Javascript
jquery实现图片放大点击切换
Jun 06 jQuery
Vue页面骨架屏注入方法
May 13 Javascript
详解js类型判断
May 22 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
May 12 Javascript
用JQuery调用Session的实现代码
Oct 29 #Javascript
基于jquery 的一个progressbar widge
Oct 29 #Javascript
JQuery开发的数独游戏代码
Oct 29 #Javascript
Web前端设计模式  制作漂亮的弹出层
Oct 29 #Javascript
10个基于Jquery的幻灯片插件教程
Oct 29 #Javascript
jQuery.ajax 用户登录验证代码
Oct 29 #Javascript
Jquery Autocomplete 结合asp.net使用要点
Oct 29 #Javascript
You might like
php中的路径问题与set_include_path使用介绍
2014/02/11 PHP
php截取字符串函数分享
2015/02/02 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
js在ie下打开对话窗口的方法小结
2016/10/24 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
JavaScript Base64 作为文件上传的实例代码解析
2017/02/14 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
vue-路由精讲 二级路由和三级路由的作用
2020/08/06 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
用Python中的字典来处理索引统计的方法
2015/05/05 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
商场促销活动方案
2014/02/08 职场文书
初级会计求职信范文
2014/02/15 职场文书
小学生元旦广播稿
2014/02/21 职场文书
安全标语大全
2014/06/10 职场文书
欢迎领导标语
2014/06/27 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
大学生联谊活动策划书(光棍节)
2014/10/10 职场文书
综合素质自我评价评语
2015/03/06 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android