В Demandware Script вы обнаружите, что давно устарелая концепция E4X, которая расширяет синтаксис JavaScript 1.6 / ES3, все еще существует.Тем не менее, его использование сейчас не рекомендуется.Вы можете найти некоторую документацию по этому синтаксису здесь: https://developer.mozilla.org/en-US/docs/Archive/Web/E4X/Processing_XML_with_E4X
В предоставленном вами фрагменте сценария двоеточия используются для идентификации пространства имен XML следующего выражения.Без этого пространства имен вы можете обнаружить, что на неправильный объект ссылаются, или вы можете получить неопределенную ссылку.См. Конкретную область архива документации, связанную выше, которая относится к пространствам имен: https://developer.mozilla.org/en-US/docs/Archive/Web/E4X/Processing_XML_with_E4X#Handling_namespaces
Код, по сути, ищет свойство объекта с именем: status
.На самом деле это не нотация Array, как при краткой проверке.В частности, он ищет свойство пространства имен.Это не то же самое, что вызов:
['status'].toString().call(orderXml.ns);
Метод .toString()
используется, чтобы гарантировать, что мы получим представление String
свойства, а не ссылку на экземпляр этого узла XML.
Обратите внимание, что Demandware использует модифицированную версию JavaScript-реализации Mozilla Rhino 1.7R5.Смотрите матрицу функций здесь: https://mozilla.github.io/rhino/compat/engines.html