属性/字段JavaScript中的属性

时间:2018-03-01 13:39:44

标签: javascript javascript-objects

我们在C#中使用Attribute,如:

[Required] string email;

我们如何在 JavaScript

中实现这一目标

我使用了以下内容,但这不会发回

var c=function(){
    Object.defineProperties(this,{
        a:{
            writable: true,
            enumerable: true,
            configurable: true,
            required:true
        }
    });
}
var c1=new c();
var d=Object.getOwnPropertyDescriptor(c1, 'a');
console.log(JSON.stringify(d))
for(var k in d)
    console.log(k+' = '+d[k]);

required缺失

2 个答案:

答案 0 :(得分:2)

在JavaScript required中不是属性描述符。

答案 1 :(得分:0)

根据文档(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty),可以解释这种行为。打开链接并阅读Description

有几个参数可以定义,required不是其中之一。这就是为什么它不会应用于您的对象。如果你想实现这一点,你必须做这样的事情:

var c=function(){
    Object.defineProperties(this,{
        a:{
            writable: true,
            enumerable: true,
            configurable: true
        }
    });
}
var c1=new c();
var d=Object.getOwnPropertyDescriptor(c1, 'a');
d.required = true; // THIS LINE
console.log(JSON.stringify(d))
for(var k in d)
    console.log(k+' = '+d[k]);