Статті, які підпадають під теґ ‘hasOwnProperty()’

Object та його методи

воскресенье, март 2, 2008

Усі методи класу Object створені динамічно у його властивості prototype. Тобто використано прототипний тип спадкування. Тобто Вам не потрібно використовувати ключове слово override для того, щоб перевантажити метод.

describeType для Object показує, що три методи (hasOwnProperty, isPrototypeOf, propertyIsEnumerable) підпадають до класового типу спадкування. Алей для них не потрібно використовувати override.

Оновлення:

Практично теж саме з Array. (Є іще класи, які підпадають під вище сказане, але переважно вони є final класами)

Далі результат роботи trace(describeType({}));

(more…)

Оператор in в кілька разів швидше hasOwnProperty()

пятница, декабрь 7, 2007

Олег (він же a_[w]) потішив іще однією швидкісною блохою:

var obj:Object = {p:true};
var r:Boolean = false;
var pn:String = 'p';
var t:Number = getTimer();
var i:uint;
for(i=0; i<1000000; i++) r = obj.hasOwnProperty('p');
trace("hasOwnProperty('p'): " + (getTimer()-t)); // 275
t = getTimer();
for(i=0; i<1000000; i++) r = obj.hasOwnProperty(pn);
trace("hasOwnProperty(pn): " + (getTimer()-t)); // 271
t = getTimer();
for(i=0; i<1000000; i++) r = 'p' in obj;
trace("'p' in : " + (getTimer()-t)); // 96
t = getTimer();
for(i=0; i<1000000; i++) r = pn in obj;
trace("pn in : " + (getTimer()-t)); // 97

Результат: майже в 3 рази.