Babeljs转换es6类扩展的方式

时间:2016-11-17 07:30:52

标签: javascript class babeljs

我正在玩Babel和ES6,发现一些代码,我被困在这一部分:

function createCard(id, title, ...) {
      ...
     // append this below the initial code you've
    //.ready make sures that function within is executed only when the specified HTML element is created in DOM
    $($title).ready(function(){
         //Then call your function
        cardScheme('#29ABDA');
    });
}

我感兴趣的输出是:

class App extends SomeParent {
    myFunction() {

    }
}

我的问题是为什么他们使用这种方式/方法var _createClass = function() { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function(Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var 使用 IIF 然后撤回另一个函数而不是这样做:

_createClass

无需使用 IIF 并返回其他功能......

有充分的理由/做法吗?

babel demo here

的链接

1 个答案:

答案 0 :(得分:1)

Babel的当前输出只会创建defineProperties一次,您的示例将为单个类声明重新创建该函数。