var foo =
"bar"
;var baz =
; baz;
// // 等價於
var baz =
;function
f(x, y)
;// 等價於: return ;}f
(1,2
);//
var obj =
}// 等價於
var obj =
}
在es5中,定義物件的屬性有兩種方法
如果使用字面量方式定義物件,在es5中只能使用方法一,而在es6中可以使用方法二:
let yuan =
"monkey"
;let animal =
animal[
"type"];
// "animal"
animal[yuan]
;// "yuan is not monkey"
animal[
"monkey"];
// "yuan is not monkey"
屬性名定義方法:
let monkey =
} monkey.
yuan()
;// yuan is a monkey"
let monkey =
} monkey.yuan.name;
// "yuan"
因在es5中,並不能處理比較兩個值是否嚴格相等,對於nan,+0,-0等並不能做出嚴格相等來判斷。
object.is() 這個方法就是來彌補上述的缺陷的:
+
0===-0
;// true
nan===
nan;
// false
object.is(
+0,-
0);// false
object.is(
nan,
nan)
;// true
基本用法:
定義:將源物件(sourcen,不知乙個源物件)的所有可列舉屬性複製到目標物件上(target)。
使用方式:object.assign(target, source1, source2, …, sourcen)
let target =
;let s1 =
;let s2 =
; object.
assign
(target, s1, s2)
;//
注意點
1、如果目標物件與源物件用同名屬性,或多個源物件具有同名屬性,則後面的屬性會覆蓋前面的屬性:
let target2 =
;let s3 =
;let s4 =
; object.
assign
(target2, s3, s4)
;//
2、如果引數不是物件,則會先轉成物件,在返回:
typeof object.
assign(3
);// "object"
3、若引數中有undefined 或者 null,這兩個引數不能放在目標物件的位置,否則會報錯:
object.
assign
(undefined)
;// cannot convert undefined or null to object at function.assign ()
object.
assign
(null);
// cannot convert undefined or null to object at function.assign ()
4、除了字串會以陣列的形式複製到目標物件上,其他值都不會產生效果:
let a1 =
'yuan'
;let a2 =
true
;let a3 =11;
let a4 =
nan;
object.
assign
(, a1, a2, a3, a4)
;//
5、object.assign()這個方法是對物件引用的複製,即是淺複製,而不是深複製。這裡需要規避同名屬性替換帶來的問題:
var obj1 =};
var obj2 =};
object.
assign
(obj1, obj2)
;// }
obj1.a.b;
// "yuan"
基本用途
class
geo}
object.
assig
(someclass.prototype,
,anothermethod()
})
function
clone
(originobj)
, originobj)
;// 將原始物件複製給空物件
}
const mergeobjs =
const
defaults=;
function
processcontent
(options)
,defaults
, options)
;}
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物件擴充套件
es6允許直接寫入變數和函式,作為屬性名和方法 var a b var c c 如果屬性值與屬性名一樣,我們值寫屬性名就可以 方法簡寫 add add function 定義物件屬性有兩種方法 obj.name lijixuan 2obj name lijixuan 我們原本只能用識別符號定義屬性,...
ES6 物件擴充套件
物件擴充套件主要從四個方面開展 1.簡潔表示法 2.屬性表示式 3.擴充套件運算子 4.object新增方法 let es6 console.log es5,es6 object object 在es5中,我們去定義物件,多使用鍵值對的方式來定義,在es6中,我們直接使用變數名稱來定義就可以了。是不...