ES6 类中的属性描述符


如何将

以下代码转换为 ES6 类:

var Mergesort = (function() {
    function Mergesort(){}
    Object.define(Mergesort.prototype,'readOnlyMethod',{
        value:function(){/*DO SOMETHING, RETURN SOME VAL*/},
        configurable:false,
        writable:false,
        enumerable:false
    });
    return Mergesort;
})()

直译 ES6 的翻译将是

const Mergesort = (() => {
    class Mergesort {}
    Object.defineProperty(Mergesort.prototype, 'readOnlyMethod', {
        value() { /*DO SOMETHING, RETURN SOME VAL*/ },
        configurable: false,
        writable: false,
        enumerable: false
    });
    return Mergesort;
})();

但是,假设您要将该方法定义为class表达式的一部分,只需在之后更改属性描述符:

class Mergesort {
    readOnlyMethod() { /*DO SOMETHING, RETURN SOME VAL*/ }
}
Object.defineProperty(Mergesort.prototype, 'readOnlyMethod', {configurable:false, writable:false});

最新更新