1. 屬性的簡潔表示方法允許在物件之中,直接寫變數,這時,屬性名為變數名,屬性值為變數的值。
function f(x, y) ;
}//等同於
function f1(x, y) ;
}console.log(f(1, 2));
2. 除了屬性方法也可以簡寫const o =
};//等同於
const o =
};commonjs 輸出變數適合使用簡潔寫法
module.exports = ;
//等同於
module.exports = ;
屬性的賦值器setter 和取值器(getter) ,的簡寫方式const cart = ,
set wheels(value)
this._wheels = value;
}}
如果某個方法的值是乙個generator函式,前面需要加上星號const obj =
}
3. 屬性名表示式//方法一:
obj.foo = true;
//方法二:
obj['a' + 'bc'] = 123;
//字面量方式(使用大括號)定義物件,只能如下
var obj =
//es6 中允許表示式定義屬性如:
let propkey = 'foo';
let obj = ;
//表示式還可以用於定義方法名
let obj =
};obj.hello(); //h1
//注意屬性名不能是物件,雖然不報錯。預設情況下會將物件自動轉換為[object object] 這點要特別小心。const keya = ;
const keyb = ;
const myobject =
console.log(myobject); //
4. 方法的name 屬性const person =
};console.log(person.sayname.name) // sayname
//如果物件的方法使用了getter setter
const obj =,
set foo(x){}
}; //這樣不行的,報錯
const descriptor = object.getownpropertydescriptor(obj, 'foo');
console.log(descriptor);
descriptor.get.name;
console.log(descriptor.set.name); // set foo
//bind function建立的
(new function()).name // "anonymous"
var dosomething = function() ;
dosomething.bind().name // "bound dosomething"
5. 如果物件的方法是乙個symbol值,那麼name屬性返回的是這個symbol值的描述。參考: (寫的很好!?)const key1 = symbol('description');
const key2 = symbol();
let obj = ,
[key2](){}
}console.log(obj[key1].name); // [description]
console.log(obj[key2].name); // //空
ES6 細化ES6之 物件的擴充套件
物件的屬性 屬性表示法es6 允許在大括號裡面,直接寫入變數和函式,作為物件的屬性和方法 es5 let name 張無忌 function sayme es5定義物件的屬性和方法的方式 var obj console.log obj.name 張無忌es6 let name 張無忌 functio...
ES6擴充套件的物件功能
在es5及更早版本中,物件字面量是 鍵 值對 的簡單集合。這意味著在屬性值被初始化時可 能會有些重複,例如 可以像這樣用es6重寫 es6同樣改進了為物件字面量方法賦值的語法。在es5及更早版本中,你必須指定乙個名稱 並用完整的函式定義來為物件新增方法,如下 通過省略冒號與function關鍵字,e...
ES6擴充套件
模板字串和標籤模板 const getcourselist function const getcourselist function foo val if status let ul document.createelement ul ul.innerhtml arr.join else pads...