ES6的物件擴充套件內容

2021-08-29 15:50:27 字數 1841 閱讀 2363

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...