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 text()要注意啦
Oct 30 Javascript
javascript 动态设置已知select的option的value值的代码
Dec 16 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
Aug 27 Javascript
Js切换功能的简单方法
Nov 23 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
May 13 Javascript
javascript如何操作HTML下拉列表标签
Aug 20 Javascript
通过隐藏iframe实现无刷新上传文件操作
Mar 16 Javascript
如何在Angular2中使用jQuery及其插件的方法
Feb 09 Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 Javascript
js实现倒计时效果(小于10补零)
Mar 08 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
Sep 18 Javascript
JavaScript函数apply()和call()用法与异同分析
Aug 10 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实现的常见排序算法汇总
2014/09/08 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
微信API接口大全
2015/04/15 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
Javascript冒泡排序算法详解
2014/12/03 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python使用range函数计算一组数和的方法
2015/05/07 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
python+opencv轮廓检测代码解析
2018/01/05 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
Python代码太长换行的实现
2019/07/05 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
销售行业个人求职自荐信
2013/09/25 职场文书
专科毕业生就业推荐信
2013/11/01 职场文书
大学生如何写自荐信
2014/01/08 职场文书
2014最新离职证明范本
2014/09/12 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
校长师德表现自我评价
2015/03/04 职场文书
独生子女证明范本
2015/06/19 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书