2013-05-24 3 views
0

Я использую Javascript для скриптов InDesign.Javascript/InDesign: проверьте, имеет ли объект определенное свойство

У меня есть объект изображения и хочу знать, что это границы (тот, который видит пользователь) -

bounds = (geometricBounds in image.parent)? image.parent.geometricBounds: image.geometricBounds; 

возвращает ReferenceError - geometricBounds is undefined. Эта ошибка возникает, когда родительский элемент изображения является объектом Oval (Итак, я знаю, что свойство geometricBounds существует для объекта Oval).

Проблема в (geometricBounds in image.parent), потому что, когда я предупреждал об этом утверждении, я получил ту же ошибку. Я, конечно, пропустил что-то, потому что, если это не свойство, я должен просто получить ложь.

Любой знает, почему это происходит?

ответ

2

В in оператор проверяет имя свойства в виде строки (в вашем случае она ищет переменную с именем geometricBounds - которая, которая может содержать имя свойства строки - которое, очевидно, не заявленную в любом месте):

bounds = ('geometricBounds' in image.parent)? image.parent.geometricBounds: image.geometricBounds; 
+0

Ухх ... Извините, это было неловко. Я новичок в JS - годах Java и C++, и теперь я чувствую себя глупым, когда занимаюсь JS! – divyanshm