ES6物件擴充套件

2021-08-09 20:43:16 字數 2147 閱讀 2576

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

var a = 'b';

var c = ;

//c = ;

如果屬性值與屬性名一樣,我們值寫屬性名就可以:

=
方法簡寫:

add();

//add : function

()

定義物件屬性有兩種方法:

obj.name = lijixuan;

2obj['name'] = lijixuan;

我們原本只能用識別符號定義屬性,在es6中我們可以使用表示式作為屬性名:

var obj  =;
現在可以:

var cc = 'a';

var obj =

//add

兩種特殊情況:bind方法創造的函式,name屬性返回「bound」加上原函式的名字;function建構函式創造的函式,name屬性返回「anonymous」。

(new function()).name // "anonymous"  

var add = function() ;

add.bind().name // "bound add"

object.is

用來比較兩個值是否嚴格相等。

+0 === -0

//true

nan === nan

// false

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

object.is(nan, nan) // true

這就是object.is與 === 的區別,其餘的都一樣。

obiect.assign()

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

let target = ;

let origin1 = ;

let origin3 = ;

object.assign(target , origin1 , origin2 )

//target ;

第乙個引數是目標物件,其餘的全是源物件。

如果只有乙個引數,返回該引數,如果不是物件,轉換為物件。

undefined 、 null 報錯。

字串 => 陣列 => 物件 (陣列引數的轉換形式)

拷貝:

var target =  }  

var source = }

object.assign(target, source)

// }

使用assign拷貝是淺拷貝。也就是說,如果源物件某個屬性的值是物件,那麼目標物件拷貝得到的是這個物件的引用。

為物件新增方法:

add(x, y) );  

}

合併物件:

(target, ...sources) => object.assign(target, ...sources);
object.setprototypeof()

給物件增加原型:

let proto = {};  

let obj = ;

object.setprototypeof(obj, proto);

proto.y = 20;

proto.z = 40;

obj.x // 10

obj.y // 20

obj.z // 40

object.keys() object.values() object.entries()

object.keys(obj)  

object.values(obj)

object.entries(obj)

乙個返回可遍歷的屬性名,乙個返回可遍歷的屬性值,乙個返回陣列,屬性名與屬性值。

ES6 物件擴充套件

es6 允許直接寫入變數和函式,作為物件的屬性和方法 var key1 1 var bj var bz 方法的簡寫 var ob fn2 表示式還可以用於定義方法名。var lastword last word var a a first word hello a lastword world a ...

ES6 物件擴充套件

物件擴充套件主要從四個方面開展 1.簡潔表示法 2.屬性表示式 3.擴充套件運算子 4.object新增方法 let es6 console.log es5,es6 object object 在es5中,我們去定義物件,多使用鍵值對的方式來定義,在es6中,我們直接使用變數名稱來定義就可以了。是不...

ES6 物件擴充套件

es6對物件進行了一系列的擴充套件,其中包括書寫方式及函式 1 物件簡寫 2 可計算屬性 let name angela let front lee let obj 等同於 getname function front name name 可擴充套件屬性 obj.getname 3 關於物件新增的方...