javascript - 在没有 Object.defineProperty 的情况下定义不可写属性?

标签 javascript ecmascript-5

所以我知道你可以这样做:

var obj = {};
Object.defineProperty(obj, 'staticProp', {
    value: 'I will never change',
    writable: 'false'
});

我知道你可以做到这一点:

var obj = {
    get gettableProp(){
        return 'gettable!'
    }
} 

有没有一种方法可以声明性地定义不可写/可枚举/可配置的属性,而不是像定义 getter 或 setter 那样使用 Object.defineProperty()?

我问的原因是因为我有一个函数可以像这样传递一个对象:

ObjectProcessor({
    // A bunch of properties
})

当我想包含不可写或不可枚举的属性时,我真的希望能够保留这种简单的语法,而不是必须这样做

var obj = {}
Object.defineProperty(obj, 'staticProp', {
    value: 'I will never change',
    writable: 'false'
});
ObjectProcessor(obj);

最佳答案

Is there a way to define non-writable/enumerable/configurable properties declaratively instead of using Object.defineProperty(), the way you'd define a getter or setter?

没有。

(有 Object.defineProperties ,但我想这不是您要找的)

关于javascript - 在没有 Object.defineProperty 的情况下定义不可写属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31061309/

相关文章:

javascript - 从 ES5 'for' 循环翻译 ES6 'for-each' 循环

javascript - typescript :在类中扩展集会导致错误(构造函数集需要 'new' )

javascript - 是否可以将 ES5 JavaScript 与 Angular 2 而不是 TypeScript 一起使用?

javascript - 根据两个属性从数组中删除对象

javascript - FILTER_VALIDATE_EMAIL 正则表达式到 JavaScript?

javascript - 类型错误:在制作自定义选择框/下拉列表时无法读取未定义的属性 'items'

javascript - 为什么分配了错误的索引?

javascript - 如何停止 ui-sref 编码 url 参数

javascript - 如何使用 jQuery 或其他 js 框架将字符串作为文件上传

javascript - 我如何以非递归方式重写此 CallExpression?