函数的定义方式
//第一种定义方式 function fn1(){ alert(‘fn1‘); } /*函数就是一个非常特殊的对象,是一个Function类的实例, 其实在内存中存储的操作是通过一个键值对来存储的 */ console.log(typeof fn1); //由于函数是一个对象,所以可以通过如下方式定义 //以下是通过函数的拷贝来完成赋值,两个引用并没有指向同一个对象 var fn2 = fn1; //两个的值虽然相等,但是指向的是不同的空间 fn2(); fn1 = function(){ console.log(‘fn1‘); //fn1的值改变了之后,不会影响fn2的值 } /* 函数虽然是一个对象,但是却和对象有一些区别,对象是通过 引用的指向完成对象的赋值的,而函数却是通过对象的拷贝来完成的 所以fn1虽然变了,并不会影响fn2 */ fn2(); fn1(); /* 对于对象而言,是通过引用的指向来完成赋值的,此时修改o1或者o2会将两个值都完成修改 */ var o1 = new object(); var o2 = o1; //o1和o2其实指向了同一块空间,当修改o2的值的时候,o1也会被修改 o2.name = ‘leo‘; alert(o1.name);
时间: 2024-10-09 08:04:14