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 相关文章推荐
JS如何将UTC格式时间转本地格式
Sep 04 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
Dec 19 Javascript
jQuery实现当前页面标签高亮显示的方法
Mar 10 Javascript
js实现仿Windows风格选项卡和按钮效果实例
May 13 Javascript
JavaScript中实现map功能代码分享
Jun 11 Javascript
js实现简洁的TAB滑动门效果代码
Sep 06 Javascript
jquery仿QQ登录账号选择下拉框效果
Mar 22 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
Oct 29 Javascript
使用Bootstrap美化按钮实例代码(demo)
Feb 03 Javascript
微信小程序访问node.js接口服务器搭建教程
Apr 25 Javascript
js定时器实现倒计时效果
Nov 05 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
Aug 10 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函数method_exists()与is_callable()的区别
2013/06/21 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
小程序采集录音并上传到后台
2019/11/22 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
编写Python CGI脚本的教程
2015/06/29 Python
Python编程中对文件和存储器的读写示例
2016/01/25 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
盛大二次面试题
2016/11/18 面试题
书法比赛获奖感言
2014/02/10 职场文书
运动会入场口号
2014/06/07 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
满月酒邀请函
2015/01/30 职场文书
辞职信如何写
2015/02/27 职场文书
房屋所有权证明
2015/06/19 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
使用Redis做预定库存缓存功能
2022/04/02 Redis