1. es6 は変数や関数をオブジェクトのプロパティやメソッドとして直接書き込みます。
const name = 'ポニーボーイの, age = 20;
const person = {
name,//name に相当する。:name
age,
sayName(){
console.log(this.name);
}
}
person.sayName()//
function fn(x,y) {
return {x,y};
}
console.log(fn(10,20));// {x:10,y:20}
Object.set および get
- getメソッドは、カートのオブジェクトにアクセスするときに呼び出されます。
- set メソッドはカートオブジェクトが変更されたときに呼び出されます。
let cart = {
wheel:4,
name:"King"
set(newVal){
if(newVal < this.wheel){
throw new Error('Library数が小さすぎる。)
}
this.wheel = newVal;
},
get(){
return this.wheel;
}
}
// console.log(cart.get());
cart.set(6);//通常の変更
cart.set(2);// エラーをスローする
console.log(cart.get())
文字変換 スプライシング:
オブジェクトの属性は、[]と'
例1.
const obj = {};
obj.isShow = true;
const name = 'a';
obj[name+'bc'] = 123;
console.log(obj); //{isShow: true, abc: 123}
例2.
const obj = {};
obj['f'+'bc'] = function () {
console.log(this);
}
console.log(obj); //{fbc:function(){console.log(this)}}
例3.
const name = 'a';
const obj = {
isShow:true,
[name+'bc']:123,
['f'+name](){
console.log(this);
}
}
console.log(obj);//{isShow: true, abc: 123, fa: }
Object のメソッド
Object.is():単に値が等しいかどうかを比較するだけで、暗黙の型変換は行いません。
console.log(NaN === NaN); // false
// 2つの値が厳密に等しいかどうかを比較する
// console.log(NaN === NaN);
console.log(Object.is(NaN,NaN));// true
console.log(Object.is(undefined,undefined)); // true
var go=111
var here=111
console.log(Object.is(go,here)); //true
Object.assign():列挙可能なすべてのプロパティの値を、1つ以上のソース・オブジェクトからターゲット・オブジェクトにコピーするために使用します。これは、ターゲット・オブジェクトを返します。
// オブジェクトのマージ
// Object.assign(target,obj1,obj2....)
// マージ後の新しいオブジェクトを返す
let newObj = Object.assign({},{a:1},{b:2});
console.log(newObj); // {a: 1, b: 2}