返回实例类+ babel JS

时间:2018-12-07 18:12:49

标签: javascript ecmascript-6 babel

我正在JS上构建一个“库”,并且强制性地只有一个.js文件。

我刚刚开始构建,直到现在我都知道了:

app-es6 / main.js

class Sjs {

    create(obj) {
        console.log(obj);
    }

}

index.html

<script src="app/main.js"></script>

<script>
    let sjs = new Sjs();
    sjs.create({
        type: 'select'
    });
</script>

.babelrc

{
    "presets": ["es2015"]
}

我需要做什么:

1)该类不应在html中实例化,该实例应从js准备就绪,因此我可以只键入sjs.create(),例如jQuery,moment等。

2)如果我需要导入更多JS文件,以构建更结构化的样式,我可以“包装”到单个js中,将其最小化吗?

感谢您的咨询。

1 个答案:

答案 0 :(得分:1)

  

1)该类不应在html中实例化,该实例应从js准备就绪,因此我可以只键入sjs.create(),例如jQuery,moment等。

只需将其放在main.js声明之后的class中即可:

let sjs = new Sjs();
全局范围内的

let创建一个全局变量(尽管不是全局对象的属性[通常在浏览器中以window的身份访问)。如果还需要该属性,请使用var而不是let或分配给window.sjs(这也会创建一个全局变量;全局对象上的所有属性都是全局变量,仅此而已)从ES2015开始,并不是所有的全局变量都是全局对象的属性。

也就是说,如果是单身人士,那么使用class并不会带来太多好处。值得注意的是,jQuery和MomentJS都公开了功能jQuery / $moment),而不是不可调用的对象。

  

2)如果我需要导入更多JS文件,以构建更结构化的样式,我可以“包装”到单个js中,将其最小化吗?

您正在寻找一个{em> bundler ,例如WebpackRollup等。它们具有用于与Babel集成,进行缩小等功能的插件。