日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

es6中新增对象的特性和方法

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 es6中新增对象的特性和方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 對象簡寫

//曾經假如是這樣的var name = 'xxx'var obj = {name : name, say : function(){alert(this.name)}}//對象簡寫后var obj = {name,say(){alert(this.name)}}//簡單的說就是寫對象的時候把冒號以及左邊的key省了,直接寫變量名或者方法名,這個應用還是很廣泛的。

2. 屬性名表達式

//曾經定義的時候可以這樣這樣var obj = { name : '小白',age : 20}//也可以這樣obj.name = '小白'obj['a' + 'ge'] = 20 //現在可以讓上面的兩種方式合體了。。。var name = 'name'var obj = {[name] : '小白', // 數組里用變量作為屬性名['a' + 'ge'] : 20}//看到沒,在字面量的情況下使用變量和字符串拼接定義屬性。。。合體了~console.log( obj[name], obj.age ) //name是變量//屬性名表達式跟那個中括號離不開,甚至寫方法的時候也可以這么搞var obj = {[name] : '小白', // 數組里用變量作為屬性名['a' + 'ge'] : 20,['say'+'Name'](){ // 函數名也可以用屬性名表達式return this[name]}}// 屬性名表達式與簡潔表示法 不能同時使用var name = '小白'var obj = {[name] //這樣是不對的,使用了屬性名表達式后,必須后面跟冒號,像往常寫法一樣}

3. Object.assign 合并對象

var target = {}Object.assign(target, source1, source2, ...) // 所有source被合并到target中// 如果參數只有一個對象,那么assign則只返回這個對象。// assign是淺拷貝自身屬性,并且同名會被后面的覆蓋調,如果是非對象參數會被變成對象再做處理。

4. super

//做java的看這個肯定很眼熟。。。//在js里。。this代表當前函數所屬對象,super代表當前函數所屬對象的原型對象也就是__proto__const proto = {x: 'hello',foo() {console.log(this.x);},};const obj = {x: 'world',foo() {super.foo();}}Object.setPrototypeOf(obj, proto);//obj調用foo方法后執行的super找到自身的proto下的foo方法執行了console.log(this.x),//一般來說這個this應該指向的離他最近的對象,但super后就變成了call調用并且修改自身this為 //obj, 所以輸出worldobj.foo() // "world"

轉載于:https://www.cnblogs.com/sunheng/p/7918742.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的es6中新增对象的特性和方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。