手机版

简单解析JavaScript中的__proto__属性

时间:2021-10-31 来源:互联网 编辑:宝哥软件园 浏览:

JavaScript是面向对象的语言,也就是说,一切都是对象。

那么如何生成对象呢?在Java世界中,对象是由类的实例创建的。通俗地说,就是把事物抽象成一个模子,具体的对象(对象)就是由这个模子(类)产生的。

但是JS中没有类的概念,有的是“原型”,对象是从原型派生出来的。总的来说,在JS的世界里,“原型”不是一个模子,而是一个具体的物体。所有的对象都是从另一个对象派生出来的,这个派生出来的对象叫做“原型对象”。

javascript中有三种类型的对象,1个用户创建的对象,2个构造器对象和3个原型对象。

用户创建对象,这些对象通常是通过使用新语句显式构造的。构造函数的对象,普通构造函数,即通过新的调用生成普通对象的函数原型对象,以及构造函数原型属性指向的对象。三个对象中的每个类都有一个属性-__proto__ attribute,它指向对象的原型,并且可以从它后面的任何对象追溯到Object.prototype。

所有构造函数都有一个原型对象,它指向一个原型对象。通过此构造函数创建对象时,所创建对象的__proto__属性将指向构造函数的prototype属性。

原型对象有一个指向其对应构造函数的构造函数属性。

说话便宜,给我看代码!让我们看看代码:

var obj={ };console . log(obj);2016510171046523.png  (15446)

让我们展开_ _ proto _ _ _:这是一些默认方法。

2016510171106039.png  (331351)

你会碰巧在这个__proto__对象中还有一个__proto__对象。正如我们刚才所说的,每个对象都有一个__proto__属性指向它的原型对象。让我们打印出这篇文章的原型:

console.log(obj。__原型_ _。_ _ proto _ _);//-null结果为null,表示已到达顶层原型对象。Obj是用大括号{}定义的,obj的原型对象自然是JS的顶层对象。

让我们看看代码的一端,并加强我们的理解:

var parent={ name : ' parent ' };var child={ name : 'child ',_ _ proto _ _ : parent };var subChild={ name : ' subChild ',_ _ proto _ _ : child } console . log(subChild);2016510171136445.png  (176141)

孩子。_ _ proto _ _ _-child child。_ _ proto _ _ _-parent parent。_ _ proto _ _ _-顶级原型对象。

版权声明:简单解析JavaScript中的__proto__属性是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。