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插件制作 在SageCRM的查询屏幕隐藏部分行的功能
Dec 26 Javascript
jquery Moblie入门—hello world的示例代码学习
Jan 08 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
Aug 01 Javascript
jquery中的$(document).ready()使用小结
Feb 14 Javascript
jquery使用ajax实现微信自动回复插件
Apr 28 Javascript
js中利用tagname和id获取元素的方法
Jan 03 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
Feb 25 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
Dec 28 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
Mar 03 Javascript
bootstrap table表格插件使用详解
May 08 Javascript
如何为vue的项目添加单元测试
Dec 19 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
May 29 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
一个简单实现多条件查询的例子
2006/10/09 PHP
网络资源
2006/10/09 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
php类声明和php类使用方法示例分享
2014/03/29 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
javascript入门·对象属性方法大总结
2007/10/01 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
移动端基础事件总结与应用
2017/01/12 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Python中获取对象信息的方法
2015/04/27 Python
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
Python3监控疫情的完整代码
2020/02/20 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
Linux文件系统类型
2012/02/15 面试题
工作人员思想汇报
2014/01/09 职场文书
营销总经理岗位职责
2014/02/02 职场文书
工作分析计划书
2014/04/30 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
煤矿隐患排查制度
2015/08/05 职场文书