javascript出现脚本错误 提示函数未定义

JavaScript09

javascript出现脚本错误 提示函数未定义,第1张

你的Javascript程序我帮你改好了,你看看吧

主要改了type="text/javascript"和my函数中的两个语句,另外,把选择颜色table中的black改成了cyan,其它都没变.

完整的html代码如下

<!doctype html>

<html lang="en">

 <head>

 <meta charset="UTF-8">

 <meta name="Generator" content="EditPlus&#174">

 <meta name="Author" content="">

 <meta name="Keywords" content="">

 <meta name="Description" content="">

 <title>Document</title>

<script type="text/javascript">

function my(color)

{

  var table=document.getElementById("colorTable")

 table.style.backgroundColor=color

}

</script>

 </head>

 <body>

 <h3>选取颜色</h3>

 <table border="1px">

 <tr height="24px">

 <td bgcolor="red" width="24px" onclick="my('red')"></td>

 <td bgcolor="orange" width="24px" onclick="my('orange')"></td>

 <td bgcolor="yellow" width="24px" onclick="my('yellow')"></td>

 <td bgcolor="green" width="24px" onclick="my('green')"></td>

 <td bgcolor="cyan" width="24px" onclick="my('cyan')"></td>

 <td bgcolor="blue" width="24px" onclick="my('blue')"></td>

 <td bgcolor="purple" width="24px" onclick="my('purple')"></td>

 </tr>

</table>

<table id="colorTable" border="1px" height="168px" width="168px">

 <tr>

 <td></td>

 </tr>

</table> 

 </body>

</html>

运行结果

你在定义函数的时候,传的形参是num,而在函数内部使用的时候是n,明显不统一嘛,统一一下。就不会报错了

----------------------------------

另外,在函数的末尾没有return值,所有在html文件内嵌入的document.write(...)输出为undefined

这是拷贝自哪里的JavaScript代码?

仔细看了代码, 函数$Body是写在了函数createWavePlane中了, 这样一来$BODY最多只能算一个"局部函数"(借用局部变量的概念), 而setInterval函数的一个参数是一个JavaScript执行脚本, 从调用来看$BODY必须是一个"全局函数", 故会有$BODY未定义的错误.

另外, setInterval中应写成函数调用形式$BODY(), 这样函数才会得到执行(没有括号函数是不会被执行的).

看了此代码好像是要实现一个类似"类"的功能, 一般JavaScript中的"类"这样写:

function ClassA() {

    this.className = "ClassA"   // 用this.xxx做为类成员的访问定义

    this.method1()    // 调用类的"实例方法"

}

// 用类名.prototype = {}来定义类的各种"实例方法"

ClassA.prototype = {

    method1: function() {

        window.alert("You call method1")

    },    // 各方法间用逗号分隔

    method2: function() {

        window.alert("You call method2")

    }

}

// 用类名.静态方法 = function()定义静态方法

ClassA.staticMethod = function() {

    window.alert("call static method")

}

// 这样来调用静态方法:

ClassA.staticMethod()

// 这样定义"类的实例", 并调用类实例方法

var ins = new ClassA()

ins.method2()