тест, если объект определяется
, Это работает в AS2 и AS3, и является самым надежным способом протестировать, если объект имеет значение.
if (obj != null) {
doSomethingWith(obj);
}
также самый надежный способ протестировать свойство объекта и считать его в том же выражении:
if (arr[0] != null && arr[0]>5) {
doSomethingWith(arr[0]);
}
тест, если объект пустой
, существует различие между пустым и неопределенным, но если Вы не заботитесь, что можно просто сделать нормальное сравнение между любым, потому что они выдерживают сравнение равный:
if (obj == null) {
doSomethingWith(obj);
}
совпадает с
if (obj == undefined) {
doSomethingWith(obj);
}
, Если Вы заботитесь о различии, используйте === или! == оператор, который не преобразует их.
if (obj === undefined) {
// obj was never assigned a value
}
else if (obj === null) {
// obj was explicitly set to null
}
else {
doSomethingWith(obj);
}
Просто протестируйте его против пустого указателя.
var someObj:Object = getSomeObjectOrMaybeNull();
if(someObj == null) {
trace("someObj is null!");
} else {
trace("someObj is not null!");
}
Для ActionScript 3.0, если все Вы хотите, является универсальным тестом для небытие , затем это очень легко:
var a;
var b;
var c;
var d;
a = undefined;
b = null;
c = 5;
if (a)
trace(a);
if (b)
trace(b);
if (c) // Will trace
trace(c);
if (d)
trace(d);
В примере выше, только c
проследят. Это обычно, в чем я нуждаюсь, и просто проверка if (obj)
является самой читаемой версией.
Этот метод использует неявное преобразование в булево значение, также известное как булево приведение , и детали того, что значения принудят ко лжи и что значения принудят к истинному , следуют стандартам ECMA и также зарегистрированы специально для ActionScript.
Вы могли также циклично выполниться через родительский объект видеть, содержит ли он какие-либо экземпляры объекта, Вы ищете.
foundit=false;
for (var i in this) {
if (this[i]._name == "MyMovie") {
foundit=true;
}
}