物件的擴充套件

2022-07-26 16:30:15 字數 2557 閱讀 6606

1、屬性的簡潔表示法

es6 允許直接寫入變數和函式,作為物件的屬性和方法

//

簡潔表示法 ---> 變數

let o=1;

let k=2;

let es5=;

let es6=;

console.log(es5,es6);

//

//簡潔表示法 ---> 函式

let es5_method=

};let es6_method=

};console.log(es5_method.hello(),es6_method.hello());

//hello hello

2、屬性名表示式

js 定義物件的屬性有兩種方法

//

方法一 字面量

obj.foo = true;//

方法二 表示式

obj['a' + 'bc'] = 123;

es6 允許字面量定義物件時,用表示式作為物件的屬性名,即把表示式放在方括號內

let propkey = 'foo';

let obj =;

console.log(obj);

//let a='b';

let es5_obj=;

let es6_obj=

console.log(es5_obj,es6_obj);

//

3、object.is()

object.is 方法用來比較兩個值是否嚴格相等,與嚴格比較運算子(===)的行為基本一致

object.is('foo', 'foo')   //

true

object.is({}, {})

//false

不同之處只有兩個:一是+0不等於-0,二是nan等於自身

+0 === -0   //

true

nan === nan //

false

object.is(+0, -0) //

false

object.is(nan, nan) //

true

4、object.assign()

object.assign方法用於物件的合併,將源物件(source)的所有可列舉屬性,複製到目標物件(target)

object.assign方法的第乙個引數是目標物件,後面的引數都是源物件

var target = ;

var source1 = ;

var source2 = ;

object.assign(target, source1, source2);

target

//

注意點:

(1)、如果目標物件與源物件有同名屬性,或多個源物件有同名屬性,則後面的屬性會覆蓋前面的屬性

var target = ;

var source1 = ;

var source2 = ;

object.assign(target, source1, source2);

target

//

(2)、如果只有乙個引數,object.assign會直接返回該引數

var obj = ;

object.assign(obj) === obj //

true

(3)、如果該引數不是物件,則會先轉成物件,然後返回

typeof object.assign(2)    //

"object"

(4)、由於undefined和null無法轉成物件,所以如果它們作為引數,就會報錯

object.assign(undefined)    //

報錯 cannot convert undefined or null to object

object.assign(null) //

報錯 cannot convert undefined or null to object

(5)、object.assign方法實行的是淺拷貝,而不是深拷貝。也就是說,如果源物件某個屬性的值是物件,那麼目標物件拷貝得到的是這個物件的引用

var obj1 = };

var obj2 =object.assign({}, obj1);

obj2.a.b //1

var obj1 = };

var obj2 =object.assign({}, obj1);

obj1.a.b = 2;

obj2.a.b

//2

上面**中,源物件obj1的a屬性的值是乙個物件,object.assign拷貝得到的是這個物件的引用。這個物件的任何變化,都會反映到目標物件上面

物件的擴充套件

1.允許直接寫入變數和函式作為物件的屬性和方法。2.允許物件中只寫屬性名,不寫屬性值,屬性值就變數屬性名所代表的值。var date 2020 var o 定義物件的屬性名時,可以使用表示式,但必須放在方括號內。ps 屬性名表示式和簡潔表示式不能同時使用。let propkey foo let ob...

物件的擴充套件

1.物件的簡寫 const foo bar const baz baz 等同於const baz 2.簡寫法 列印物件 let user let foo console.log user,foo console.log foo console.log直接輸出user和foo兩個物件時,就是兩組鍵值對...

物件的擴充套件 02

解構賦值 物件的解構賦值,用於從乙個物件取值,相當於將所有可遍歷的,但尚未被讀取的屬性分配到指定物件上面。所有的鍵和它們的值都會複製到新物件上面 let x 1 y 2 z 由於解構賦值要求等號右邊是乙個物件,所以如果等號右邊是 undefined 或 null 就會報錯,因為他們無法轉為物件 le...