1:JavaScript是面向对象的语言。函数同样也是一个对象。函数的具体类型是什么,属于什么类型的实例,我们下面一一说明。
2:看下面的示例和注释说明:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>关于函数的类型</title>
<script type="text/javascript">
//关于函数的具体的类型
function fun(){}
//通过下面两行的输出内容可以看出
//任何一个函数都是一个对象,有constructor的属性。是Function 的一个对象。
alert(fun.constructor);//function Function() { [native code] }
alert(Function);//function Function() { [native code] }
//或者通过typeof关键字去判断函数的类型
alert(typeof fun);//function
//接下来聊一下关于Function
//1:Function是JavaScript的内置类型。和Number、String、Date、RegExp一样。
//Object 作为这些内置类型的基类。Function是 Object 的派生类。
//可以通过Function构造函数去动态的创建一个函数对象
//其实这也就是函数定义的第三种方式,一般很少使用。了解即可。有点像eval 方法。
var f = new Function("a","b","return a + b;");
//调用该方法
alert(f(1,2));//3
//任何一个函数都是Object的一个实例。
//我们可以通过 instanceof 关键字去判断
//instanceof:用于判断对象是否是某种类型的实例的。如果是返回true,否则返回false。
var obj = new Object();
alert(fun instanceof Function);//true
alert(fun instanceof Object);//true
alert(obj instanceof Function);//false
alert(obj instanceof Object);//true
//总结:任何函数的类型是Function类型,Function类型是 Object类型的派生类。
</script>
</head>
<body>
</body>
</html>
3:补充
-- 在JavaScript中的所有的类,都是通过Function 定义的。而且都是Object的派生类。所以,所有的类一方面是Function 的实例,另一方面是Object的派生类。
PS:笔者有大量的学习资料:java、python、大数据、人工智能、前端等。需要的小伙伴请加群:711408961
笔者的b站中有一些教学视频分享。感兴趣的小伙伴可以关注:https://space.bilibili.com/412362068