<!DOCTYPE html>
<html>
<head>
<title>javascript函数</title>
<meta charset="UTF-8">
<script type="text/javascript">
//函数的定义第一种方式
function fn1(){
alert("fn1");
}
//函数是一个非常特殊的对象,是一个function的类的实例,其实在内存中的存储的操作是通过键值对来存储的
alert(typeof fn1);
//由于函数是一个对象,所以可以通过如下方式定义
//以下是通过函数的拷贝来完成赋值,两个引用并没有指向同一个对象
var fn2 = fn1;
//调用
fn2();
fn1 = function(){
alert("fnn1");
}
//函数虽然是一个对象,但是却和对象有一些区别,对象是通过引用指向完成对象的赋值,而函数却是通过对象的拷贝来完成的
//所以fn1虽然变了并不会影响fn2
fn2();
fn1();
/**
* 对于对象而言,是通过引用指向来完成对象的赋值的.此时修改o1或者o2的两个值都会改变
* var o1 = new Object();
* var o2 = o1;
* o2.name="zhangsan";
* alert(o1.name);
*
*/
</script>
</head>
<body>
</body>
</html>