首页 > 技术文章 > js 模块化 -- 基本的导出与引入class模块

c2g5201314 2021-04-01 15:23 原文

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跨域异常

 

推荐阅读