如下面的例程:
<SCRIPT LANGUAGE="JavaScript"><!--var can_play = false;var mimetype = 'audio/midi';if (navigator.mimeTypes) {if (navigator.mimeTypes[mimetype] != null) {if (navigator.mimeTypes[mimetype].enabledPlugin != null) {can_play = true;document.write('<EMBED SRC="sound.mid" HIDDEN=TRUE LOOP=FALSE AUTOSTART=FALSE>');}}}function playSound() {if (document.embeds && can_play) {if (navigator.appName == 'Netscape')document.embeds[0].play();elsedocument.embeds[0].run();}}function stopSound() {if (document.embeds && can_play)document.embeds[0].stop();}//--></SCRIPT>以下是具体代码:<A HREF="#" onMouseover="playSound()" onMouseOut="stopSound()"><IMG SRC="image.gif" WIDTH="100"
HEIGHT="100" BORDER="0"></A>函数playSound()、stopsound()是在链接的onclick事件中被调用,所以执行。而其他javascript语句if (navigator.mimeTypes) {if (navigator.mimeTypes[mimetype] != null) {
没有被调用,就直接执行了
是这个意思吧!
<SCRIPT LANGUAGE="JavaScript"><!--var can_play = false;var mimetype = 'audio/midi';if (navigator.mimeTypes) {if (navigator.mimeTypes[mimetype] != null) {if (navigator.mimeTypes[mimetype].enabledPlugin != null) {can_play = true;document.write('<EMBED SRC="sound.mid" HIDDEN=TRUE LOOP=FALSE AUTOSTART=FALSE>');}}}function playSound() {if (document.embeds && can_play) {if (navigator.appName == 'Netscape')document.embeds[0].play();elsedocument.embeds[0].run();}}function stopSound() {if (document.embeds && can_play)document.embeds[0].stop();}//--></SCRIPT>以下是具体代码:<A HREF="#" onMouseover="playSound()" onMouseOut="stopSound()"><IMG SRC="image.gif" WIDTH="100"
HEIGHT="100" BORDER="0"></A>函数playSound()、stopsound()是在链接的onclick事件中被调用,所以执行。而其他javascript语句if (navigator.mimeTypes) {if (navigator.mimeTypes[mimetype] != null) {
没有被调用,就直接执行了
是这个意思吧!
function f1()
{
alert("!"); // 定义时不执行;被调用时执行
}
var f2 = function()
{
alert("!!"); // 定义时不执行;被调用时执行
}
只有当被定义的函数 在其他位置被调用 或者 被实例化 时才按同样的规则执行里面的脚本。如:
f1();
f2();
// 或 实例化 如下
var a1 = new f1();
var a2 = new f2();
也就是说 function 定义只有在使用“函数名()”方式调用或者使用“new”关键字实例化的时候才会执行定义里的脚本。而其他语句则按载入的顺序逐句执行。