美文网首页饥人谷技术博客
JavaScript 原型及原型链

JavaScript 原型及原型链

作者: PingerL | 来源:发表于2019-11-27 21:46 被阅读0次
原型链

一:prototype属性

  1. 这是一个显式原型属性,只有函数才拥有该属性,基本上所有函数都有这个属性。
  2. prototype 如何产生
    当我们声明一个函数时,这个属性就自动被创建了
function Foo() { }

这个属性的值是一个对象(也就是原型),只有一个属性constructor

二:constructor属性

constructor 是一个公有且不可枚举的属性,constructor属性指向构造函数(即Foo())
作用:让实例知道是什么函数构造了它

总结:构造函数通过 prototype 属性指向原型,原型的 constructor属性指回构造函数

三:__proto__属性

  1. 每个JS对象都有__proto__属性,指向了创建该对象的构造函数的原型
  2. prototype 是内部属性,我们并不能访问到,所以使用_proto_来访问。通过_proto_将对象和原型联系起来组成原型链,得以让对象可以访问到不属于自己的属性
  3. 实例对象的_proto_ 如何产生的:当我们使用new 操作符时,生成的实例对象拥有了_proto_属性
    • Object.prototype.__proto__ === null
    • Object.__proto__ === Function.prototype
    • Function.__proto__ === Function.prototype
    • fn.__proto__ === Fn.prototype

四:原型链

  • 对象的__proto__属性指向原型,__proto__将对象和原型连接起来组成了原型链
  • 具体起来说就是:访问一个对象的属性时,先在基本属性中查找,如果没有,再沿着__proto__这条链向上找,这就是原型链

总结

  1. Object是所有对象的爸爸,所有对象都可以通过__proto__找到它
  2. Function是所有函数的爸爸,所有函数都可以通过__proto__找到它
  3. 函数的prototype是一个对象
  4. Function.prototypeObject.prototype 是两个特殊的对象,他们由引擎来创建
  5. 除了以上两个特殊对象,其他对象都是通过构造器new 出来的
  6. 对象的 __proto__指向原型,__proto__将对象和原型连接起来组成了原型链

参考资料:
深度解析原型中的各个难点

相关文章

  • JavaScript面试考点之原型及原型链

    1、JavaScript原型及原型链 1)原型 JavaScript是一种基于原型的语言,即每一个对象拥有一个原型...

  • JavaScript 原型、原型链与原型继承

    原型,原型链与原型继承 用自己的方式理解原型,原型链和原型继承 javascript——原型与原型链 JavaSc...

  • 原型、原型链

    (什么是原型、原型链?有什么作用) JavaScirpt深入之从原型到原型链 图解 Javascript 原型链 ...

  • js原型、原型链、继承的理解

    一、原型、原型链 原型是Javascript中的继承的基础,JavaScript的继承主要依靠原型链来实现的。 原...

  • javascript原型链及继承的理解

    javascript:void(null)# 原型链及继承的理解 定义函数 继承 继承构造函数 继承静态属性 继承原型链

  • 【javascript】继承

    javascript只支持实现继承,而且继承主要是依靠原型链来实现的。 原型链 javascript将原型链作为实...

  • JavaScript原型及原型链

    一、原型 原型是 ECMAScript 实现继承的过程中产生的一个概念。 继承: java 中:指在已有的一个类基...

  • JavaScript 原型及原型链

    一:prototype属性 这是一个显式原型属性,只有函数才拥有该属性,基本上所有函数都有这个属性。 protot...

  • javascript碎片知识001

    javascript中的对象(原型,原型链) 什么是原型? 原型是JavaScript中的继承的基础,JavaSc...

  • javaScript原型链

    javaScript原型链概念JavaScript之继承(原型链)数据结构var Person = functio...

网友评论

    本文标题:JavaScript 原型及原型链

    本文链接:https://www.haomeiwen.com/subject/jlymwctx.html