IE11 gives SCRIPT1002 error when defining class in javascript

前端 未结 3 776
借酒劲吻你
借酒劲吻你 2020-12-08 20:09

I have some trouble with IE11 and a static javascript class I wrote.

The error I get is:

SCRIPT1002: Syntax error rgmui.box.js (6,1)

相关标签:
3条回答
  • 2020-12-08 20:19

    Hate to reopen such an old issue, but it still shows up high in the results, so I'll add what I found out:

    To reiterate what @Mikey and @REJH said, classes are not recognized by IE11.

    That said, tools like Babel will allow you to translate classes into something that will run on IE11.

    0 讨论(0)
  • 2020-12-08 20:20

    Static class Example

    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;
        };
    })();
    
    function _classCallCheck(instance, Constructor) {
        if (!(instance instanceof Constructor)) {
            throw new TypeError("Cannot call a class as a function");
        }
    }
    
    var StaticClass = (function () {
        function StaticClass() {
            _classCallCheck(this, StaticClass);
        }
    
        _createClass(StaticClass, null, [{
            key: "method1",
            value: function method1() {
                // .. code ..
            }
        }]);
    
        return StaticClass;
     })();
    
    0 讨论(0)
  • 2020-12-08 20:33

    @Mikey is right. IE11 does not recognize this syntax for classes because ES6 spec: https://kangax.github.io/compat-table/es6/

    class RgMuiBox {
        static method1() {
        // .. code ..
        }
    }
    

    I'm still not sure if the following is the correct way to define a static class but it works:

    var RgMuiBox = {};
      RgMuiBox.method = function() {
        // ....
      }
    

    Just putting it out here so this question has some sort of an answer that might help people get going. If there are alternatives to the above I like to hear about those!

    0 讨论(0)
提交回复
热议问题