SORU
8 AĞUSTOS 2009, CUMARTESİ


JavaScript nesne boyutu

Boyutunu JavaScript bir nesne tarafından işgal bilmek istiyorum.

Aşağıdaki işlevi

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

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

.. Öğrenci örneğini şimdi

var stud = new Student();

ben de bir şeyler yapabilirim yani

stud.firstName = "new Firstname";

alert(stud.firstName);

stud.marks.maxMarks = 200;

vb...

şimdi, stud nesne bellekte boyutu işgal edecek. Bazı veri ve daha fazla nesne var.

Ne kadar stud nesneyi kaplar öğrenebilirim?

JavaScript sizeof() gibi bir şey mi?

Eğer tek bir işlev çağrısı gibi olsaydı gerçekten harika olurdu

sizeof(stud)

P. S. internette aradım ay için - bulamadım (forumları - hayır cevaplar birkaç sordu).

CEVAP
10 AĞUSTOS 2012, Cuma


Re-çarpanlarına benim kodu original answer var. Özyineleme kaldırıldı ve varlığını kabul yükü kaldırdık.

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;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Nesson

    Charles Ness

    27 NİSAN 2006
  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006
  • KoreanFrogMania님의 채널

    KoreanFrogMa

    18 Aralık 2011