zoukankan      html  css  js  c++  java
  • js 模块化 -- 基本的导出与引入class模块

    1.目录结构

     2.类语法与导出

    class food {
    }
    
    //定义常量
    let c = "苹果";
    //正确的函数写法
    food.prototype.getfood = function (str) {
        if (!str) {
            return "" + this.g;
        }
        return "" + str
    }
    //定义常量
    food.prototype.g = "荔枝";
    
    
    
    class food2 {
        //定义常量
        c2 = "苹果";
        //无法这个定义函数,错误写法
        // function kk(){
        //
        // }
        //正确的函数写法
        getfood2 = function (str) {
            if (!str) {
                return "" + c;
            }
            return "" + str
        }
    }
    
    
    //默认导出 ,如果事由一个类用这个方法修方便,
    // export {food as default };
    export {food, food2}
    源码

    写了两种定义类方法和属性变量的写法

    注意:类名.prototype.【变量名或者方法】=  。。。这种写法是扩展写法,
    或者说prototype就是用于扩展类里的变量名或者方法的

    3.html 导入 与使用

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>组件引入测试</title>
    <!--    &lt;!&ndash;导入脚本&ndash;&gt;-->
    <!--    <script type="text/javascript" src="../../../plug/vue/devVue.js"></script>-->
    <!--    &lt;!&ndash;导入样式&ndash;&gt;-->
    <!--    <link rel="stylesheet" type="text/css" href="../../../css/myStyle.css">-->
    <!--    &lt;!&ndash;layui 界面组件&ndash;&gt;-->
    <!--    <link rel="stylesheet" type="text/css" href="../../../plug/layui/css/layui.css">-->
    </head>
    <body>
    <div id="aut">
    
    
    </div>
    
    <!--模块加载需要将类型设置为module-->
    <script type="module" >
    
        //http://localhost:57/html/pc/test/h1.html
    
        //正常导入类
        import {food,food2} from "./js/classTest1.js"
        //导入类换别名
        // import {food as f,food2 as f2} from "./js/classTest1.js"
        console.log(food)
        let c_food = new food();
        console.log(c_food.getfood())
        console.log(c_food.getfood("西瓜"))
        console.log(c_food.g)
        // console.log(mc.getfood())
        // console.log(mc.getfood("西瓜6655东方航空"))
        let c_food2 = new food2();
        console.log(c_food2.c2)
        console.log(c_food2.getfood2())
        console.log(c_food.getfood("芒果"))
    
    </script>
    
    </body>
    </html>
    源码

    核心部分是

     4.测试

    打印结果如下

     5.跨域提示

    静态文件要么放在工程里、要么放在.net站点、要么配置nginx路由到本地的静态文件、要么修改浏览器的权限,否则会报CROS跨域异常
  • 相关阅读:
    解释DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
    MySQL性能优化
    MySQL中的binlog相关命令和恢复技巧
    保障MySQL安全的14个最佳方法
    MySQL忘记root密码的解决方案
    MySQL利用binlog来恢复数据库
    MySQL命令mysqldump参数大全
    MySQL REPLACE替换输出
    MySQL -A不预读数据库信息(use dbname 更快)
    MySQL 慢查询配置
  • 原文地址:https://www.cnblogs.com/c2g5201314/p/14606509.html
Copyright © 2011-2022 走看看