napi_property_descriptor


typedef struct {
  // One of utf8name or name should be NULL.
  const char* utf8name;
  napi_value name;

  napi_callback method;
  napi_callback getter;
  napi_callback setter;
  napi_value value;

  napi_property_attributes attributes;
  void* data;
} napi_property_descriptor; 
  • utf8name:可选字符串,用于描述属性的键,采用 UTF8 编码。属性必须提供 utf8namename 中的一个。
  • name:可选的 napi_value,指向一个 JavaScript 字符串或符号,用作属性的键。属性必须提供 utf8namename 中的一个。
  • value:如果属性是数据属性,则通过 get 访问属性时获取的值。如果传入了这个值,请将 gettersettermethoddata 设置为 NULL(因为这些成员将不会被使用)。
  • getter:当对属性执行获取操作时调用的函数。如果传入此项,需要将 valuemethod 设置为 NULL(因为这些成员不会被使用)。当从 JavaScript 代码访问该属性时(或使用 Node-API 调用对属性执行获取操作时),运行时会隐式调用指定的函数。napi_callback 提供了更多详细信息。
  • setter:当对属性执行设置访问时调用的函数。如果传入此项,请将 valuemethod 设置为 NULL(因为这些成员不会被使用)。当从 JavaScript 代码中设置该属性(或使用 Node-API 调用对属性进行设置)时,运行时会隐式调用给定的函数。napi_callback 提供了更多详细信息。
  • method:设置此项以将属性描述符对象的 value 属性设置为由 method 表示的 JavaScript 函数。如果传入此项,则将 valuegettersetter 设置为 NULL(因为这些成员将不会被使用)。napi_callback 提供了更多详细信息。
  • attributes:与特定属性相关的属性。参见 napi_property_attributes
  • data:如果调用此函数,传递给 methodgettersetter 的回调数据。