码迷,mamicode.com
首页 > Web开发 > 详细

js 对象与函数的区别

时间:2016-03-05 13:03:35      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6 
 7     <script type="text/javascript">
 8         //第一种定义方式
 9         function fn1(){
10             alert("fn1");   //fn1
11         }
12         //函数就是一个非常特殊的对象,是一个Function类的实例,其实在内存中存储的操作是通过一个键值对来存储的
13         alert(typeof  fn1());  //function
14 
15         //由于函数是一个对象,所有可以通过如下方式定义
16         //此时 fn2指向与fn1一样的函数,但是js与java不同点:
17         // 1、java中key放置到堆栈中,函数放置到内存中,即此时fn1放置到堆栈中,函数value放置到内存中
18         //    此时fn2 = fn1 ,堆栈中重新创建一个对象fn2,虽然此时fn2指向的函数仍然与fn1指向的函数相同,
19         //   但是fn2 的函数已经与fn1 的函数已经不属于一块内存了,不像java指向的仍然还是一块内存区域
20         var fn2 = fn1;
21         fn2();  //fn1
22         fn1 = function(){
23             alert("fnn1");   
24         }
25         //函数虽然是一个对象,但是却和对象有区别,对象是通过引用的的指向完成对象的赋值操作,
26         //而函数确实通过对象的拷贝来完成的
27         //所以fn1虽然改变了,但是不会影响fn2
28         fn2();  //fn1
29         fn1();  //fnn1
30 
31         /**
32          * 对于对象而言,是通过引用的指向来完成赋值的,此时修改o1或者o2会将两个只完成修改,与java中的方式相同
33          * @type {Object}
34          */
35         var o1 = new Object();
36         var o2 = o1;
37         o2.name = "LEON";
38         alert(o1.name);   //LEON
39 
40 
41     </script>
42 
43 </head>
44 <body>
45 
46 </body>
47 </html>

技术分享

js 对象与函数的区别

标签:

原文地址:http://www.cnblogs.com/a757956132/p/5244494.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!