From c40612041809fe289aba58aefa170bbe784aba1f Mon Sep 17 00:00:00 2001 From: t7yang Date: Mon, 10 Jan 2022 08:38:07 +0800 Subject: remove name attribute for zh-CN --- .../global_objects/object/assign/index.html | 32 +++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'files/zh-cn/web/javascript/reference/global_objects/object/assign') diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/assign/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/assign/index.html index 080c859773..c81cacda30 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/object/assign/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/object/assign/index.html @@ -18,11 +18,11 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Object/assign -

语法

+

语法

Object.assign(target, ...sources)
-

参数

+

参数

target
@@ -31,7 +31,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Object/assign
源对象。
-

返回值

+

返回值

目标对象。

@@ -83,16 +83,16 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Object/assign }); } -

示例

+

示例

-

复制一个对象

+

复制一个对象

const obj = { a: 1 };
 const copy = Object.assign({}, obj);
 console.log(copy); // { a: 1 }
 
-

深拷贝问题

+

深拷贝问题

针对深拷贝,需要使用其他办法,因为 Object.assign()拷贝的是(可枚举)属性值。

@@ -137,7 +137,7 @@ function test() { test(); -

合并对象

+

合并对象

const o1 = { a: 1 };
 const o2 = { b: 2 };
@@ -159,7 +159,7 @@ console.log(obj); // { a: 1, b: 2, c: 3 }

属性被后续参数中具有相同属性的其他对象覆盖。

-

拷贝 symbol 类型的属性

+

拷贝 symbol 类型的属性

const o1 = { a: 1 };
 const o2 = { [Symbol('foo')]: 2 };
@@ -168,7 +168,7 @@ const obj = Object.assign({}, o1, o2);
 console.log(obj); // { a : 1, [Symbol("foo")]: 2 } (cf. bug 1207182 on Firefox)
 Object.getOwnPropertySymbols(obj); // [Symbol(foo)]
-

继承属性和不可枚举属性是不能拷贝的

+

继承属性和不可枚举属性是不能拷贝的

const obj = Object.create({foo: 1}, { // foo 是个继承属性。
     bar: {
@@ -184,7 +184,7 @@ const copy = Object.assign({}, obj);
 console.log(copy); // { baz: 3 }
 
-

原始类型会被包装为对象

+

原始类型会被包装为对象

const v1 = "abc";
 const v2 = true;
@@ -196,7 +196,7 @@ const obj = Object.assign({}, v1, null, v2, undefined, v3, v4);
 // 注意,只有字符串的包装对象才可能有自身可枚举属性。
 console.log(obj); // { "0": "a", "1": "b", "2": "c" }
-

异常会打断后续拷贝任务

+

异常会打断后续拷贝任务

const target = Object.defineProperty({}, "foo", {
     value: 1,
@@ -214,7 +214,7 @@ console.log(target.foo3); // undefined,异常之后 assign 方法就退出了
 console.log(target.baz);  // undefined,第三个源对象更是不会被拷贝到的。
 
-

拷贝访问器

+

拷贝访问器

const obj = {
   foo: 1,
@@ -251,7 +251,7 @@ console.log(copy);
 // { foo:1, get bar() { return 2 } }
 
-

Polyfill

+

Polyfill

此{{Glossary("Polyfill","polyfill")}}不支持 symbol 属性,因为ES5 中根本没有 symbol :

@@ -285,7 +285,7 @@ console.log(copy); }); } -

规范

+

规范

@@ -307,11 +307,11 @@ console.log(copy);
-

浏览器兼容

+

浏览器兼容

{{Compat("javascript.builtins.Object.assign")}}

-

相关链接

+

相关链接