zoukankan      html  css  js  c++  java
  • javascript学习笔记05

    JavaScript的函数

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>js01_hello</title>
        <meta name="author" content="Administrator" />
        <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 = "Leon";
        alert(o1.name);
        </script>
    </head>
    <body>
    </body>
    </html>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>js01_hello</title>
        <meta name="author" content="Administrator" />
        <script type="text/javascript">
        // function sum(num1,num2) {
            // return num1+num2;
        // }
        var sum = function(num1,num2) {
            return num1+num2;
        }
        
        // function sum(num1) {
            // return num1+100;
        // }
        /**
         * 此时sum所指向的空间已经从有两个参数的函数变化到只有num1的函数中
         * 在调用的时候就只会调用只有num1的函数
         * 特别指出:函数的参数和调用没有关系,如果函数只有一个参数,但是却传入
         * 了两个参数,仅仅只会匹配一个
         * 所以在js中函数不存在重载
         */
        var sum = function(num1) {
            return num1+100;
        }
        
        //函数有如下一种定义方式
        /**
         * 如下定义方式等于定义了一个
         * function fn(num1,num2){
         *       alert(num1+num2);
         * }
         * 所以通过以下的例子,充分的说明函数就是一个对象
         */
        var fn = new Function("num1","num2","alert('fun:'+(num1+num2))");
        fn(12,22);
        alert(sum(19));
        
        alert(sum(19,20));
        </script>
    </head>
    <body>
    </body>
    </html>

  • 相关阅读:
    设计模式研究
    requests模块请求常用参数的写法整理
    python程序打包exe文件
    爬虫响应信息乱码解决方式
    Vue-cli父子组件之间传参
    MYSQL事件隔离级别以及复读,幻读,脏读的理解
    [NOIP2009] 提高组 洛谷P1073 最优贸易
    [NOIP2009] 提高组 洛谷P1071 潜伏者
    [NOIP2009] 普及组
    洛谷P3386 【模板】二分图匹配
  • 原文地址:https://www.cnblogs.com/canceler/p/4518042.html
Copyright © 2011-2022 走看看