前端进阶(随手记)------原型链解析(

    xiaoxiao2021-03-29  27

    一 基础知识: 在JS中,万物皆对象,方法(Function)是对象,原型也是对象(简称原型对象)。以下是基本概念: 1 函数对象:函数也是对象,简称函数对象。 2 原型:函数具有的一个属性叫做原型,这个属性指向一个另一个对象,(构成原型链的基础)。原型是属性(又称原型属性)也是是对象;原型的本质是对象。 3 原型对象:原型也是对象,简称原型对象。相当于你妈。 4 构造函数:构造函数就是啪啪啪啪,就是造人。产生下一代。 5 实例:啪啪啪之后,生出的人是实例。相当于是你。 6 _ proto _, 也称隐式原型,也可以写作[[prototype]],每个对象(包括对象和函数)都存在这个原型。其作用是:构成原型链。 7 prototype ,也称显示原型,是函数特有的属性。显式原型的作用是:用来实现基于原型的继承与属性的共享。 特殊:(1)Object的显示原型是Object .prototype(凭空出来的) 、Function的显示原型是Function .prototype。

    二 指向关系 1 : 隐式原型(_ proto _)指向定义:隐式原型指向创建这个实例对象(相当于你)的函数(相当于你妈)的显式原型(prototype)。 备注a:(因为显示原型是对象,所以又可以说隐式原型指向原型对象)。 备注b:更直接一点,就是找你妈的子宫。 备注c: 由于你可能是(1)你妈和你爸啪啪啪来的;(2)你把的精子和其他女人的卵子经过试管得到的;(3)你是抱养来的。所以寻找你妈就有三种方式。 (第一种情况1:这个对象是通过对象字面量构造出来的。对象(person_1)的_ proto _指向Object .prototype

    var person1 = { name: '张三', sex: 'male' };

    (第二种情况2:这个对象是由构造函数构造出来的。实例对象(person_2)的_ proto _指向Person .prototype

    function Person(name,sex){ this.name=name; this.sex=sex; } var person_2 = new Person("李四",male);

    (第三种情况3:这个对象是由函数Object.create构造的。实例对象(person_3)的_ proto _指向person00 .prototype

    var person00 = {name: 'cyl', sex: 'male' }; var person_3 = Object.create(person00);

    2 :显示原型的指向定义:是以当前函数作为构造函数构造出来的对象的原型对象,(显示原型指向函数的原型对象)。 ` function Foo() {} var foo = new Foo(); console.log(foo.prototype);// undefined 网很多讲的多是隐式原型, 显示原型待研究,后续补上………….

    3:介于本人技术有限,很多知识只是了解皮毛,放上大牛的文章链接:js中proto和prototype的区别和关系?:https://www.zhihu.com/question/34183746 JavaScript 内置对象与原型链结构:https://zhuanlan.zhihu.com/p/22181782

    转载请注明原文地址: https://ju.6miu.com/read-664880.html

    最新回复(0)