Подтвердить что ты не робот

Проверка, если объект определен в ActionScript

В ActionScript, как вы можете проверить, задан ли объект, то есть не null?

4b9b3361

Ответ 1

проверить, если объект определен

Это работает в AS2 и AS3 и является самым надежным способом проверить, имеет ли объект значение.

if (obj != null) {
    doSomethingWith(obj);
}

Его также самый надежный способ проверить свойство объекта и прочитать его в том же выражении:

if (arr[0] != null && arr[0]>5) {
    doSomethingWith(arr[0]);
}

проверить, является ли объект нулевым

Там разница между нулем и undefined, но если вам все равно, вы можете просто провести обычное сравнение между ними, потому что они сравнивают одинаковые:

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);
}

Ответ 2

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

Ответ 3

Просто проверьте его на null.

var someObj:Object = getSomeObjectOrMaybeNull();
if(someObj == null) {
  trace("someObj is null!");
} else {
  trace("someObj is not null!");
}

Ответ 4

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

foundit=false;
for (var i in this) {
    if (this[i]._name == "MyMovie") {
         foundit=true;
    }
}