texto negrita letra javascript syntax

texto - letra negrita en alert javascript



¿Qué hace ''::''(doble colon) en JavaScript? (8)

La documentación de algunas API de JavaScript muestra los siguientes fragmentos de código como ejemplo de cómo invocar alguna función:

<button type="button" onClick="foo.DoIt(72930)">Click</button> <button type="button" onClick="foo.DoIt(42342::37438)">Click</button>

:: obviamente se utiliza aquí para permitir que se pasen uno o dos argumentos a la función.

¿Qué hace :: hacer en JavaScript?

¿Y cómo sabe la función si se pasaron uno o dos valores? ¿Cómo los lee?

En una mirada más cercana, los ejemplos muestran otras cosas raras como

<button type="button" onClick="foo.Bar(72//893)">Click</button> <button type="button" onClick="foo.Qux(425;1,34::)">Click</button>

Al menos la // ve mal.

Así que supongo que no es una nueva sintaxis extravagante de la que no tengo conocimiento, pero quizás a los ejemplos solo les faltan comillas en torno a un solo argumento de cadena.


¿En qué ejemplo viste eso? Hasta ahora, JavaScript no tiene un operador de doble colon!

Los dos puntos dobles reemplazaron los selectores de un solo colon para los pseudo-elementos en CSS3 para hacer una distinción explícita entre pseudo-clases y pseudo-elementos. Pero eso es CSS3, no JavaScript! ¡De ningún modo!


Ciertamente no fue el caso en el momento de su pregunta, pero en este momento :: es un operador válido de ES7. En realidad es un atajo para bind .

::foo.bar

es equivalente a

foo.bar.bind(foo)

Vea una explicación aquí para ejemplos:


Debe ser un error tipográfico para

<button type="button" onClick="foo.DoIt(''72930'')">Click</button> <button type="button" onClick="foo.DoIt(''42342::37438'')">Click</button>


Estoy adivinando que la lista de parámetros para foo.DoIt () es generada por código, y uno de los valores estaba vacío.


Nada. Es un error de sintaxis.

>>> alert(42342::37438) SyntaxError: missing ) after argument list



Tal vez sea un error tipográfico, y se espera que todo esté entre comillas.


:: no tiene nada que ver con el número de parámetros. Puedes hacerlo ya en JavaScript con una coma normal:

function SomeFunction(param1, param2) { //... } SomeFunction(''oneParam''); // Perfectly legal

Además, según la respuesta de Tzury Bar Yochay, ¿estás seguro de que no estás viendo algo como lo siguiente?

$(''this::is all one::parameter''); // jQuery selector