gpt4 book ai didi

javascript - 如何获取 JavaScript 对象的大小?

转载 作者:行者123 更新时间:2023-11-28 04:06:17 24 4
gpt4 key购买 nike

我想知道 JavaScript 对象占用的大小。

采用以下函数:

function Marks(){
this.maxMarks = 100;
}

function Student(){
this.firstName = "firstName";
this.lastName = "lastName";
this.marks = new Marks();
}

现在我实例化学生:

var stud = new Student();

这样我就可以做类似的事情

stud.firstName = "new Firstname";

alert(stud.firstName);

stud.marks.maxMarks = 200;

等等

现在,stud 对象将占用内存中的一些大小。它有一些数据和更多对象。

如何找出stud对象占用了多少内存?类似于 JavaScript 中的 sizeof() 吗?如果我能在像 sizeof(stud) 这样的单个函数调用中找到它,那就太棒了。

我已经在互联网上搜索了几个月 - 找不到它(在几个论坛中询问 - 没有回复)。

最佳答案

我已经在我的 original answer 中重构了代码。我已经删除了递归并删除了假定存在的开销。

function roughSizeOfObject( object ) {

var objectList = [];
var stack = [ object ];
var bytes = 0;

while ( stack.length ) {
var value = stack.pop();

if ( typeof value === 'boolean' ) {
bytes += 4;
}
else if ( typeof value === 'string' ) {
bytes += value.length * 2;
}
else if ( typeof value === 'number' ) {
bytes += 8;
}
else if
(
typeof value === 'object'
&& objectList.indexOf( value ) === -1
)
{
objectList.push( value );

for( var i in value ) {
stack.push( value[ i ] );
}
}
}
return bytes;
}

关于javascript - 如何获取 JavaScript 对象的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46658910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com