繁体   English   中英

Console.log显示隐藏的对象信息

[英]Console.log shows hidden object info

当我执行console.log(someobject) ,我在对象内部看到了一些__proto__对象,其中包含大量数据。

如果我的对象上有很多属性(也是对象的属性),则可以轻松获得数百个原型 无论如何这会以任何方式影响性能吗? 我应该改用数组吗?

它只是JavaScript内部原型链的一部分。 每当创建新对象时,其__proto__属性都设置为其“父”对象的prototype属性。 要回答您的问题,它对您可以直接控制的性能没有影响,因此不必担心。

如果您想了解更多信息,请查看MDN, https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto

熟悉JavaScript使用的原型继承。 参见,例如, 此处在MDN

简而言之:JavaScript中的对象不是通过实例化类来创建的,而是通过创建类似于另一个对象(原型)的对象来创建的。 因此,每个对象都有一个指向其原型的指针。

如果在代码中的某个位置需要对象的方法或属性,则编译器将检查对象本身是否具有这样的属性(comp。hasOwnProperty () )。 如果不是,则查看相应的原型对象。 如果在此处找不到该属性,则会查看原型的原型,依此类推。 一直到Object为止,这都是JavaScript的基本原型。 prototype chain也称为prototype chain

由于这是该语言的固有功能,因此您无论如何都不能规避它,因此不会对您特定站点的性能产生任何影响。

这可能会降低console.log调用的速度,但不会降低生产模式下的应用程序的速度。 无论如何, Object对象的__proto__属性是一个非标准且已弃用的Mozilla扩展,它将有一天被删除,因此不必担心(标准的Object.getPrototypeOf(obj)方法已经可以代替obj.__proto__ )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM