日期:2014-05-16  浏览次数:20456 次

函数是什么?
《JavaScript 权威指南》中,说过这么两句话:

1:在Java中,函数或方法不是数据,在JavaScript中也是如此。
2:JavaScript函数是对象,可以像创建其它任何对象的属性那样,来创建一个函数的属性。

我觉得这两句话意思有点不一样,在JavaScript中,函数(方法)到底是不是数据类型,是不是对象呢?

------解决方案--------------------
应该是一段可执行的代码 函数名可能是指向这段代码位置的指针  自己猜测的  
------解决方案--------------------
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
------解决方案--------------------
参见这个http://www.w3school.com.cn/js/pro_js_functions_function_object.asp
抄袭的
------解决方案--------------------
js中函数是对象
js的函数对象构造函数为Function,也就是说js的函数是Function类的实例
你可以像使用一般对象一样地使用一个函数对象
比如添加成员 
function fun ()
{
    alert(fun.a);
};
fun.a='a';
第一句那也就很好理解了,函数是对象,自然也是引用类型了,而且函数变量相当于只是一段代码的入口地址,说它不是数据也说得过去
------解决方案--------------------
函数就是能完成某一功能的代码块
------解决方案--------------------
1:在Java中,函数或方法不是数据,在JavaScript中也是如此。 
2:JavaScript函数是对象,可以像创建其它任何对象的属性那样,来创建一个函数的属性。



1说明不是数据
2说明是object  可以用o.a=???来设置属性
------解决方案--------------------
javascript中
函数是函数,对象时对象

只不过对象的创建方式很类似函数,所有才会让人有点傻傻分不清楚。



------解决方案--------------------
如果我没记错的话,第8章明确说过:函数不只是语法,还可以是数据,可以将函数赋值给变量,可以作为对象的属性或者数组元素,甚至是作为参数传递给其它函数