2011-05-11 7 views
10

Supongamos que está en el <head> de su página html.

OOPS esto fue un poco antes de que le faltaba ...:

<script type="text/javascript" src="/include/js/billys.js"></script> 
<script type="text/javascript" src="/include/js/susies.js"></script> 
<script type="text/javascript" src="/include/js/marys.js"></script> 

Orden de las 3 secuencias de comandos podría variar. ¿Cuál sería el resultado?

Billy define como $

function $() { 
return false; 
} 

Susie define como $

function $() { 
return document.getElementById('body'); 
} 

María define como $

function $() { 
alert('I wrote this'); 
} 
+0

Disculpe, vea la pregunta ahora. Estoy hablando con archivos js externos. Solo para aclarar. –

+0

como dije en mi respuesta. lo que sea último, ¿es la definición de '$' – Neal

Respuesta

18

Lo que es última es º e definición final de $

Esa es la razón de (por ejemplo) jQuery existe noConflict() que le permite utilizar una variable diferente que $ para jQuery

+0

Entonces SIEMPRE [SIEMPRE], de arriba hacia abajo, y lo que sea último es lo que usará? –

+0

@Doug ¿qué quieres decir? – Neal

+0

Estoy confirmando que está diciendo que el orden de los scripts es realmente lo único que importa. –

5

La última función con el mismo nombre gana.

+2

Es como si el precio fuera el correcto. –

16

Why not try it?

function $() { 
return false; 
} 
function $() { 
return document.getElementById('body'); 
} 
function $() { 
alert('I wrote this'); 
} 
$(); // alerts "I wrote this" 

La definición más adelante sobrescribe el existente. Por esta razón, generalmente es una buena práctica verificar si una función ya existe antes de definirla. p.ej.

if (typeof $ !== 'function') { 
    function $(){ /* your code */} 
} 

o fallar de una manera sensata.

+1

Si la función existe, ¿sobrescribirla con una función en blanco? Creo que necesitas cambiar un poco tu último ejemplo. – Ryan

+0

@minitech Um, sí, '! ==' es lo que quise decir. Comentario agregado para mayor claridad. – lonesomeday

+0

Bien, gracias :) +1 – Ryan

Cuestiones relacionadas