# define-property 中文文档

规范地址：https://npmcn.com/package/define-property/

版本：2\.0\.2
npm 元数据更新时间：2022-06-14T23:28:17.488Z
中文译文更新时间：2026-11-05T16:31:34.940Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/define-property
原文对照：https://npmcn.com/package/define-property/?lang=original
项目主页：https://github.com/jonschlinkert/define-property
源码仓库：https://github.com/jonschlinkert/define-property

## 关键信息（来自 npm 元数据）

- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=0\.10\.0
- 运行依赖：2 个
- 首次发布：2015-08-13T01:46:20.557Z
- 最新版本发布：2018-01-26T20:24:22.283Z
- 近 30 天下载量：187498172（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 0 个）

## 中文简介

定义物体上的不可假定财产。 可用时使用Reflect.define Property,否则使用Object.define Property.

## 安装

```sh
npm install define-property
```

也可以使用：`pnpm add define-property`、`yarn add define-property`、`bun add define-property`

## README

# 定义财产 [![NPM version](https://img.shields.io/npm/v/define-property.svg?style=flat)](https://www.npmjs.com/package/define-property) [![NPM monthly downloads](https://img.shields.io/npm/dm/define-property.svg?style=flat)](https://npmjs.org/package/define-property) [![NPM total downloads](https://img.shields.io/npm/dt/define-property.svg?style=flat)](https://npmjs.org/package/define-property) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/define-property.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/define-property)

> 定义物体上的不可假定财产。 可用时使用Reflect.define Property,否则使用Object.define Property.

请考虑跟随这个项目的作者, [乔恩·斯林克特](https://github.com/jonschlinkert),并考虑主演该项目以显示你的:心:和支持.

## 安装

安装方式 [无](https://www.npmjs.com/)数字 :

```sh
$ npm install --save define-property
```

## 发布历史

见 [变化](https://npmcn.com/package/define-property/changelog.md) 用于更新.

## 使用量

**参数**

-   `object`: 用于定义属性的对象.
-   `key`:要定义或修改的财产名称.
-   `value`:正在定义或修改的财产的价值或描述符.

```js
var define = require('define-property');
var obj = {};
define(obj, 'foo', function(val) {
  return val.toUpperCase();
});

// by default, defined properties are non-enumberable
console.log(obj);
//=> {}

console.log(obj.foo('bar'));
//=> 'BAR'
```

**定义设置/设置**

使用时通过相同的属性 [对象. define 财产](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty) 或者说 [反射. define 财产](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty)。 。 。 .

```js
define(obj, 'foo', {
  set: function() {},
  get: function() {}
});
```

## 关于

**捐款**

拉出请求和星星总是受欢迎的. 对于错误和特性请求, [请创建一个问题](https://npmcn.com/issues/new)。 。 。 .

**运行测试**

运行和审查单元测试是熟悉图书馆及其API的好办法。 您可以使用以下命令安装依赖性并运行测试:

```sh
$ npm install && npm test
```
**大楼文件**

_(此工程的 readme.md 由 [动词](https://github.com/verbose/verb-generate-readme)请不要直接编辑读取器。 读取器的任何改动必须在 [动词 md](https://npmcn.com/package/define-property/.verb.md) 读取我的模板。 )_

要生成读取, 请运行以下命令 :

```sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb
```

### 相关项目

您可能也对这些项目感兴趣:

-   [指派深](https://www.npmjs.com/package/assign-deep): 将源对象的可假定属性和/或 es6 符号正性深入指定给目标 [更多](https://github.com/jonschlinkert/assign-deep) | [主页](https://github.com/jonschlinkert/assign-deep "Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target (first) object.")
-   [扩展线](https://www.npmjs.com/package/extend-shallow): 以附加对象的属性扩展对象。 节点.js/javascript util. | [主页](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.")
-   [合并深度](https://www.npmjs.com/package/merge-deep):在javascript对象中递归合并值 [主页](https://github.com/jonschlinkert/merge-deep "Recursively merge values in a javascript object.")
-   [混合深处](https://www.npmjs.com/package/mixin-deep): 将对象的属性深度混合到第一个对象. 像合并深,但不克隆 [主页](https://github.com/jonschlinkert/mixin-deep "Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone.")

### 贡献者

| **提交** | **贡献者** | | -- -- -- -- -- -- -- 28个 [扬施林克特](https://github.com/jonschlinkert) | | 1 | [鸽子](https://github.com/doowb) |

### 作者

**乔恩·斯林克特**

-   联系我 [链接/in/jonschlinkert](https://linkedin.com/in/jonschlinkert)
-   跟我来 [千兆克/正弦链路](https://github.com/jonschlinkert)
-   跟我来 [推特/简斯林克特](https://twitter.com/jonschlinkert)

### 许可证

版权: 2018, [乔恩·斯林克特](https://github.com/jonschlinkert)。 。 。 . 释放 [MIT 许可证](https://npmcn.com/package/define-property/LICENSE)。 。 。 .

* * *

_此文件由 [动词基因读取器](https://github.com/verbose/verb-generate-readme),v 6.0,于2018年1月25日查阅._

## 常见问题

### define-property 是什么？

定义物体上的不可假定财产。 可用时使用Reflect\.define Property,否则使用Object\.define Property\.

### 如何安装 define-property？

在项目目录运行 npm install define-property，或使用 pnpm add / yarn add / bun add。

### define-property 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/define-property 是否存在。

### define-property 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### define-property 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=0\.10\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### define-property 可以商用吗？

define-property 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### define-property 的下载量有多少？

根据 npm 官方下载统计，define-property 在 2026/10/05 – 2026/11/03 这 30 天内被下载 187,498,172 次，日均约 6,249,939 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### define-property 还在维护吗？

最新版本 2\.0\.2 发布于 2018/01/27（8 年前）；至今共发布 12 个版本，其中过去 12 个月发布了 0 个；首次发布于 2015/08/13。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

