<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <script type="text/javascript"> //楼主看书,有看到过js 有个内置的Function 对象吧。下面两个是一样的效果。 function sum(a, b) {return a + b;}; alert(sum(1, 2))//输出3 var sum = new Function('a', 'b', 'return a + b;');//注意这里用new alert(sum(1, 2))//输出3 //下面看看一个函数的是由什么对象构造出来的。alert(sum.constructor); //输出Function, 说明sum的函数是由Function构造出来的,而Function是js里的一个内置对象</script></body> </html>
你声明的所有函数都是一个对象,而且是引用类型的对象,且每个函数都是Function类型的一个实例化,比如 function a(b,c){ return b+c}(这个就是函数本身) 和 var a=new Function('c','b',"return b+c")(这个就是调用对象);是一样的;理解函数也是对象很重要,这也就能解释为什么函数也有length,和constructor等属性..
这个我也不是太清楚
第一个调用对象我认为是window对象我的回答不确保正确这是我自己的理解。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
//楼主看书,有看到过js 有个内置的Function 对象吧。下面两个是一样的效果。
function sum(a, b) {return a + b;};
alert(sum(1, 2))//输出3
var sum = new Function('a', 'b', 'return a + b;');//注意这里用new
alert(sum(1, 2))//输出3
//下面看看一个函数的是由什么对象构造出来的。alert(sum.constructor); //输出Function, 说明sum的函数是由Function构造出来的,而Function是js里的一个内置对象</script></body>
</html>