zoukankan      html  css  js  c++  java
  • 函数深入理解---函数的定义方式

    函数的定义方式

    //第一种定义方式
    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);
  • 相关阅读:
    第5章 构建Spring Web应用程序
    第4章 面向切面的Spring
    第3章 高级装配
    js json和字符串的互转
    webservice CXF入门服务端
    javascript的解析执行顺序
    java AES加密解密
    redis学习 java redis应用
    项目部署操作linux数据库mysql出现表找不到
    灯具板SOP
  • 原文地址:https://www.cnblogs.com/leole/p/4159805.html
Copyright © 2011-2022 走看看