JavaScript 原型链学习总结

 更新时间:2010年10月29日 21:05:30   作者:  
在JavaScript中,一切都是对像,函数是第一型
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

相关文章

  • 打印Proxy对象和ref对象的包实现详解

    打印Proxy对象和ref对象的包实现详解

    这篇文章主要为大家介绍了打印Proxy对象和ref对象的包实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 微信小程序实现手写板

    微信小程序实现手写板

    这篇文章主要为大家详细介绍了微信小程序实现手写板,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • JavaScript数组前面插入元素的方法

    JavaScript数组前面插入元素的方法

    这篇文章主要介绍了JavaScript数组前面插入元素的方法,涉及javascript中unshift方法的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • 微信小程序仿朋友圈发布动态功能

    微信小程序仿朋友圈发布动态功能

    这篇文章主要介绍了微信小程序仿朋友圈发布动态界面,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • json与jsonp知识小结(推荐)

    json与jsonp知识小结(推荐)

    这篇文章主要介绍了json与jsonp知识小结(推荐)的相关资料,需要的朋友可以参考下
    2016-08-08
  • js实现随机抽选效果、随机抽选红色球效果

    js实现随机抽选效果、随机抽选红色球效果

    本文主要分享了js实现随机抽选效果、随机抽选红色球效果的示例代码。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 如何优雅地取消 JavaScript 异步任务

    如何优雅地取消 JavaScript 异步任务

    这篇文章主要介绍了如何优雅地取消 JavaScript 异步任务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 解决layui 复选框等内置控件不显示的问题

    解决layui 复选框等内置控件不显示的问题

    今天小编就为大家分享一篇解决layui 复选框等内置控件不显示的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 利用d3.js实现蜂巢图表带动画效果

    利用d3.js实现蜂巢图表带动画效果

    这篇文章主要给大家介绍了关于如何利用d3.js实现蜂巢图表带动画效果的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用d3.js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解

    js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解

    本文是对js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11

最新评论