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

  • andony5589

    andony5589

    7 Aralık 2011
  • FUzzyBUnnyBOoties

    FUzzyBUnnyBO

    3 EKİM 2007
  • TurkishRoyal

    TurkishRoyal

    16 Ocak 2007