object.assign

中文文档
4.1.7发布于 2024/12/19MITCommonJS近 30 天下载 4.1亿

ES6 符合光谱的Object. sign sim. 从 https://github.com/es-shims/es6-shim (英语)

中文使用文档

对象。 指定 Version Badge

github actions coverage dependency status dev dependency status License Downloads

npm badge

一个目标,指定shim。 启动其"shim"方法来"shim Object". 如果无法使用,则指定.

此软件包执行 希姆・API 接口。 它在ES3支持的环境中工作并遵守 光谱在ES6环境中,它还将与 Symbol编号.

至少需要两个理由: target 财务报告和审定财务报表 source。 。 。 . 用一个可变大小的源参数列表 - 至少 1, 随您需要多少 . 如果 target 参数是 null 或者说 undefined。 。 。 .

最常见的用途:

var assign = require('object.assign').getPolyfill(); // returns native method if compliant
    /* or */
var assign = require('object.assign/polyfill')(); // returns native method if compliant

示例

var assert = require('assert');

// Multiple sources!
var target = { a: true };
var source1 = { b: true };
var source2 = { c: true };
var sourceN = { n: true };

var expected = {
    a: true,
    b: true,
    c: true,
    n: true
};

assign(target, source1, source2, sourceN);
assert.deepEqual(target, expected); // AWESOME!
var target = {
    a: true,
    b: true,
    c: true
};
var source1 = {
    c: false,
    d: false
};
var sourceN = {
    e: false
};

var assigned = assign(target, source1, sourceN);
assert.equal(target, assigned); // returns the target object
assert.deepEqual(assigned, {
    a: true,
    b: true,
    c: false,
    d: false,
    e: false
});
/* when Object.assign is not present */
delete Object.assign;
var shimmedAssign = require('object.assign').shim();
    /* or */
var shimmedAssign = require('object.assign/shim')();

assert.equal(shimmedAssign, assign);

var target = {
    a: true,
    b: true,
    c: true
};
var source = {
    c: false,
    d: false,
    e: false
};

var assigned = assign(target, source);
assert.deepEqual(Object.assign(target, source), assign(target, source));
/* when Object.assign is present */
var shimmedAssign = require('object.assign').shim();
assert.equal(shimmedAssign, Object.assign);

var target = {
    a: true,
    b: true,
    c: true
};
var source = {
    c: false,
    d: false,
    e: false
};

assert.deepEqual(Object.assign(target, source), assign(target, source));

测试

仅仅复制回转, npm install运行 npm test

版本与发布记录

object.assign 共发布 37 个版本,首次发布于 2014/03/15;过去 12 个月发布了 0 个版本。

版本发布日期距今
4.1.7latest2024/12/191.9 年前
4.1.62024/12/191.9 年前
4.1.52023/12/012 年前
4.1.42022/08/174 年前
4.1.32022/08/064 年前
4.1.22020/10/316 年前

关于 object.assign 的常见问题

object.assign 是什么?

ES6 符合光谱的Object. sign sim. 从 https://github.com/es-shims/es6-shim (英语)

如何安装 object.assign?

在项目目录运行 npm install object.assign,或使用 pnpm add / yarn add / bun add。

object.assign 支持 TypeScript 吗?

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

object.assign 支持 ESM 还是 CommonJS?

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

object.assign 需要什么版本的 Node.js?

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

object.assign 可以商用吗?

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

object.assign 的下载量有多少?

根据 npm 官方下载统计,object.assign 在 2026/10/05 – 2026/11/03 这 30 天内被下载 407,278,630 次,日均约 13,575,954 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

object.assign 还在维护吗?

最新版本 4.1.7 发布于 2024/12/19(1.9 年前);至今共发布 37 个版本,其中过去 12 个月发布了 0 个;首次发布于 2014/03/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。