JavaScript 原型链学习总结


Posted in Javascript onOctober 29, 2010

Function和Object都是函数的实例

Function的父原型指向到Function的原型,Function的原型的父原型是Object的原型。
Object的父原型也指向到Function的原型。
一个实例的对像,它的默认的父原型为其构造函数的显示原型
[每个对像都有一个隐慝的属性用于指向到它的父对像(构造对像的函数)的原型(这里称为父原型或隐式原型)。因为原型也是对像,所以原型也有父原型,Object的原型是所有父原型的顶层(原型根),这样就形成了所谓原型链]

对像属性访问原则

当从一个对像那里读取属性时,如果对像自身属性列表中不存在这样的属性,就会去自己关联的父原型对像那里寻找,如果父原型对像属性列表中也没有这样的属性则会这个父原型的父原型那里查找,直到找到或直到对顶层原型[Object.prototype]对像属性列表的查找完毕
调用对象的方法跟访问属性搜索过程一样,因为方法的函数对象就是对象的一个属性值。
实例:

Object.prototype.m1 = function(){ 
alert("我是狮子"); 
} 
function Class1(str){ 
this.p1 = str; 
} 
function Class2(){} 
Class2.prototype.m1 = function(){ 
alert("你好"); 
} 
var n1 = new Class1("毛狮子"); 
//@__proto__属性是对像父原型的引用 
//@Object.prototype.__proto__=null 
/* 
n1的原型链 
n1.__proto__=Class1.prototype 
Class1.prototype.__proto__=Object.prototype */ 
var n2 = new Class2(); 
/* 
n2的原型链 
n2.__proto__=Class2.prototype 
Class2.prototype.__proto__=Object.prototype 
*/ 
n1.m1();//===Object.prototype.m1(); 
n2.m1();//===Class2.prototype.m1(); 
alert(n1.p1);//毛狮子 
alert(n2.p1);//undefined

Javascript 相关文章推荐
jquery 多级下拉菜单核心代码
May 21 Javascript
js对象继承之原型链继承实例
Jan 10 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
JavaScript实现给定时间相加天数的方法
Jan 25 Javascript
jQuery基于muipicker实现仿ios时间选择
Feb 22 Javascript
基于jQuery实现音乐播放试听列表
Apr 14 Javascript
JavaScript ES6的新特性使用新方法定义Class
Jun 28 Javascript
微信小程序Redux绑定实例详解
Jun 07 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
Jan 22 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
May 02 Javascript
JS面向对象编程实现的Tab选项卡案例详解
Mar 03 Javascript
一起来了解一下JavaScript的预编译(小结)
Mar 01 Javascript
JavaScript 原型学习总结
Oct 29 #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
You might like
PHP获取服务器端信息的方法
2014/11/28 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
Mootools 1.2教程 类(一)
2009/09/15 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
JS实现的base64加密解密操作示例
2018/04/18 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
原生JavaScript实现换肤
2021/02/19 Javascript
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
Django的Modelforms用法简介
2019/07/27 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
web字体加载方案优化小结
2019/11/29 HTML / CSS
教你打造完美的创业计划书
2014/01/06 职场文书
设计顾问服务计划书
2014/05/04 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS
table不让td文字溢出操作方法
2022/12/24 HTML / CSS