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

  • HuskyStarcraft

    HuskyStarcra

    4 HAZİRAN 2009
  • taliajoy18

    taliajoy18

    12 Temmuz 2011
  • Whizzpopping

    Whizzpopping

    10 Kasım 2005