Flash - статьи

Создание объектов


При создании объекта включайте в его прототип функции и свойства, распространяемые на все экземпляры объекта. Это гарантирует, что в оперативной памяти будет находиться только одна копия каждой функции. Сделайте своим правилом не определять функции внутри конструктора — это создает для каждого экземпляра объекта отдельную копию этой же функции и приводит к излишнему расходованию оперативной памяти.

Пример лучшей практики создания объекта:

MyObject = function()

{

}

MyObject.prototype.name = "";

MyObject.prototype.setName = function(name)

{

    this.name = name;

}

MyObject.prototype.getName = function()

{

    return this.name;



}

Следующий пример демонстрирует неправильный метод создания объекта:

MyObject = function()

{

    this.name = "";

    this.setName = function(name)

    {

        this.name = name;

    }

    this.getName = function()

    {

        return this.name;

    }

}

В первом примере каждый экземпляр объекта MyObject указывает на одни те же функции и свойства, определенные в прототипе объекта. При этом в оперативной памяти находится только одна копия getName(), независимо от количества созданных объектов MyObject.

Во втором примере каждый созданный экземпляр MyObject создает копию каждого свойства и функции. Эти дополнительные свойства и функции занимают дополнительную память, и в большинстве случаев не предоставляют при этом никаких преимуществ.



Содержание раздела