美文网首页
浅谈JS中内置对象的原型与原型链

浅谈JS中内置对象的原型与原型链

作者: 印第安老斑鸠_333 | 来源:发表于2019-02-25 22:39 被阅读0次

JavaScript 规定,所有对象都有自己的原型对象(prototype)。由于原型对象也是对象,所以它也有自己的原型。因此,就会形成一个“原型链”(prototype chain):对象到原型,再到原型的原型……


JS内置对象(函数):Function Object String Number Boolean Array

好,先说上面的这些对象,因为它们都是函数,所以它们一定都是Function构造出的对象。那么它们的 '__proto__' 属性都指向Function的'prototype'属性。换句话说,就是一个对象的原型对象就是与它相对应的那个构造函数的'prototype'属性。

例如:

    ①,var number = new Number()

            number.__proto__ === Number.prototype

            Number.__proto__ === Function.prototype // 因为 Number 是 Function 的实例

    ②,var object = new Object()

            object.__proto__ === Object.prototype

            Object.__proto__ === Function.prototype // 因为 Object 是 Function 的实例

    ③,var function = new Function()

            function.__proto__ === Function.prototype

            Function.__proto__ === Function.prototye // 因为 Function 是 Function 的实例

以上我们总结出一个公式:

    var 对象 = new 函数()

    对象.__proto__ === 对象的构造函数.prototype


原型链是一层套一层,如果一层层地上溯,所有对象的原型最终都可以上溯到Object.prototype,即Object构造函数的prototype属性。也就是说,所有对象都继承了Object.prototype的属性。这就是所有对象都有valueOf和toString方法的原因,因为这是从Object.prototype继承的。

那么,Object.prototype对象有没有它的原型呢?回答是Object.prototype的原型是null。null没有任何属性和方法,也没有自己的原型。因此,原型链的尽头就是null。

我总结了一个不好看图,在下面

一个不好看的图

                                                                                                    引用:

                                                                                                            阮一峰JS教程

相关文章

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • 浅谈JS中内置对象的原型与原型链

    JavaScript 规定,所有对象都有自己的原型对象(prototype)。由于原型对象也是对象,所以它也有自己...

  • JS的原型及原型链

    1、原型链概念 原型链是一种机制,指的是JS中的每一个对象(包括原型对象)中有一个内置的__proto__属...

  • js 原型 2019-12-15

    原型:constructor 构造函数、实例、原型对象三者之间的关系 原型链 原型对象中的this指向 扩展内置对...

  • 那些面试官会拿来刁难你的前端基础题

    Js基本 基本数据类型: Js内置对象: 原型链 每个Js对象内部都会初始化一个原型属性(通过obj.__prot...

  • 2022前端高频面试题

    JS相关 1.原型和原型链是什么 原型和原型链都是来源于对象而服务于对象的概念js中引用类型都是对象,对象就是属性...

  • JS原型链

    1什么是JS原型链? 通过__proto__属性将对象与原型对象进行连接. 1.1 JS原型链的作用? 组成的一个...

  • js原型和原型链

    什么是原型 .什么是原型链? 原型:对象上的内置属性[[prototype]] 原型链:在对象上访问某个属性,如果...

  • js_继承及原型链等(四)

    js_继承及原型链等(三) 1. 继承 依赖于原型链来完成的继承 发生在对象与对象之间 原型链,如下: ==原型链...

  • 原型和原型链的简单理解

    原型 在JS中原型就是prototype对象,用来表示类型之间的关系。 原型链 JS中对象和对象之间是有联系的,通...

网友评论

      本文标题:浅谈JS中内置对象的原型与原型链

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