Тест, если объект определяется в ActionScript

28
задан Peter Mortensen 10 August 2013 в 13:19
поделиться

4 ответа

тест, если объект определяется

, Это работает в 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);
}
35
ответ дан Robinicks 28 November 2019 в 03:25
поделиться

Просто протестируйте его против пустого указателя.

var someObj:Object = getSomeObjectOrMaybeNull();
if(someObj == null) {
  trace("someObj is null!");
} else {
  trace("someObj is not null!");
}
3
ответ дан Herms 28 November 2019 в 03:25
поделиться

Для 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.

8
ответ дан bzlm 28 November 2019 в 03:25
поделиться

Вы могли также циклично выполниться через родительский объект видеть, содержит ли он какие-либо экземпляры объекта, Вы ищете.

foundit=false;
for (var i in this) {
    if (this[i]._name == "MyMovie") {
         foundit=true;
    }
}
-2
ответ дан 28 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: