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 關於物件新增的方...