Ответ 1
Ничего. Это синтаксическая ошибка.
>>> alert(42342::37438)
SyntaxError: missing ) after argument list
Документация некоторых API-интерфейсов JavaScript показывает следующие фрагменты в качестве примера того, как вызвать некоторую функцию:
<button type="button" onClick="foo.DoIt(72930)">Click</button>
<button type="button" onClick="foo.DoIt(42342::37438)">Click</button>
::
, очевидно, используется здесь, чтобы позволить передать один или два аргумента функции.
Что делает ::
в JavaScript?
И как функция знает, было ли передано одно или два значения? Как они их читают?
При ближайшем рассмотрении примеры показывают другие странные вещи, такие как
<button type="button" onClick="foo.Bar(72//893)">Click</button>
<button type="button" onClick="foo.Qux(425;1,34::)">Click</button>
По крайней мере, //
выглядит просто неправильно.
Поэтому я предполагаю, что это не какой-то фантастический новый синтаксис, о котором я не знаю, но, возможно, в примерах просто отсутствуют кавычки вокруг одного строкового аргумента.
Ничего. Это синтаксическая ошибка.
>>> alert(42342::37438)
SyntaxError: missing ) after argument list
Это было не так во время вашего вопроса, но прямо сейчас: - действительный оператор ES7. Это на самом деле ярлык для привязки.
::foo.bar
эквивалентно
foo.bar.bind(foo)
См. объяснение здесь, например:
::
не имеет ничего общего с количеством параметров. Вы можете сделать это уже в JavaScript с обычной запятой:
function SomeFunction(param1, param2) {
//...
}
SomeFunction('oneParam'); // Perfectly legal
Также, на основе ответа Tzury Bar Yochay, вы уверены, что не смотрите на что-то вроде следующего?
$('this::is all one::parameter'); // jQuery selector
В каком примере вы это видели? До сих пор JavaScript не имеет оператора двойной толчки!
Двойной двоеточие заменяет селекторы с одной колонкой для псевдоэлементов в CSS3, чтобы сделать явное различие между псевдоклассами и псевдоэлементами. Но это CSS3, а не JavaScript! Не ВСЕ!
Это должна быть опечатка для
<button type="button" onClick="foo.DoIt('72930')">Click</button>
<button type="button" onClick="foo.DoIt('42342::37438')">Click</button>
Возможно, это опечатка, и все это ожидается в кавычках.
Он может использовать ECMAScript для XML (стандарт ECMA-357), что подразумевает, что двойные кавычки являются оператором XPath.
Я предполагаю, что список параметров для foo.DoIt() генерируется кодом, а один из значений пуст.