1. 程式人生 > >ES6之物件字面量擴充套件語法(Enhanced Object Literals)

ES6之物件字面量擴充套件語法(Enhanced Object Literals)

物件字面量擴充套件語法(Enhanced Object Literals)

  目錄:

函式類屬性的省略語法

  用法:{ method() {…} }

const obj = {
    //Before
    foo: function(){
        return 'foo';
    },

    //After
    bar(){
        return 'bar';
    }
}

支援 proto 注入

  開發者允許直接向一個物件字面量注入__proto__,使其直接成為指定類的一個例項,而無須另外建立一個類來實現繼承。

import
{EventEmitter} from 'events' const machine = { __proto__: new EventEmitter(), method(){ /* …*/ }, // … } console.log(machine); //EventEmitter {} console.log(machine instanceof EventEmitter) //true machine.on('event', msg => console.log(`Received message: ${msg}`)); machine.emit('event'
, 'hello world'); // Received message: hello world machine.method(/* …. */);

可動態計算的屬性名

  ES6 引入的新語法允許我們直接使用一個表示式來表達一個屬性名用法:{ [statement]: value}

const prefix = 'ES6';
const obj = {
    [prefix + 'enhancedObject']: 'foo'
}

將屬性名定義省略

  有時候我們需要將一些已經被定義的變數(或常量)作為其他物件字面量的屬性值進行返回或傳入操作,而大多數情況下這些變數名和屬性名都是相同的

,我們可以對屬性名定義進行省略。

const foo = 123;
const bar = () => foo;

const obj = {
    foo,
    bar
}

console.log(obj);  //{ foo: 123, bar: [Function] }

相關推薦

ES6物件字面擴充套件語法Enhanced Object Literals)

物件字面量擴充套件語法(Enhanced Object Literals)   目錄: 函式類屬性的省略語法   用法:{ method() {…} } const obj = { //Before foo: funct

ES6 物件擴充套件

屬性的簡潔表示法 let book = '234'; let good = '432'; let obj01 = { book, good } console.log(obj01); 方法名的name屬性 .....  

Es6物件字面的改進

(1)對屬性名的簡寫: ES5的寫法: const name='Marray'; const age=20; const birthday="2018 10 20"; const Marray={ name:name, age:age, birthday:bi

js基礎-物件字面json存在的物件

<!DOCTYPE html> <html> <head> <m

物件字面宣告和建構函式宣告的比較

去某家面試的時候,在筆試的時候,看到了這個問題,回來研究一下。 JS 中有很多種物件的宣告方式,一般我用到的也就是這兩種,通過字面量來宣告物件和通過建構函式來宣告物件。 用字面量來宣告物件 我們可以直接

Java物件的多型性使用生活中通俗的例子講解)

Java之物件的多型性多型概念 (Java)    多型(英語:polymorphism),是指計算機程式執行時,相同的訊息可能會送給多個不同的類別之物件,而系統可依據物件所屬類別,引發對應類別的方法,而有不同的行為。簡單來說,所謂多型意指相同的訊息給予不同的物件會引發不同的

從壹開始前後端分離 [ Vue2.0+.NET Core2.1] 十五 ║Vue基礎:JS面向物件&字面& this字

緣起 書接上文《從壹開始前後端分離 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 計劃書 & 我的前後端開發簡史》,昨天咱們說到了以我的經歷說明的web開發經歷的幾個階段,而且也說到了Vue系列需要講到的知識點,今天就正式開始Code,當然今天的程式碼都特別簡單,希望大家慢慢的

物件字面傳遞引數方法

函式引數的2種傳遞方式:命名引數、物件字面量方式 函式傳遞引數,在有多個可選引數的情況下傳統的命名引數顯的比較死板,不夠靈活。 最好的做法是對那些必需值使用命名引數,而使用物件字面量來封裝多個可選引數! ......

深入理解ES6物件

一:物件的屬性 1:屬性速記法: //之前 function createPerson(name,age){ return { name:name, age:age

函式函式字面

### 函式字面量#### what 綜合尋找文件,找到了4.2. Function Literal,文章中表達的意思是: 函式字面量由4部分組成* 關鍵詞 function* 函式名,可有可無* 包含在括號內的引數,當然引數也是可有可無的,括號不能少。* 是一組包裹在大括

Esper學習十一:EPL語法七)

轉載請註明出處:http://blog.csdn.net/luonanqin        元宵過後回公司上班,換了個部門,換了個領導,做的事也換了,不過Esper還是會繼續搞,所以部落格也會慢慢寫的,大家別急。^_^        上一篇說到了EPL如何訪問關係型資料

JS乾貨--物件字面

Why? 一把在JS中宣告物件,大家多會這麼寫var a = {}; 很少有人這麼寫:var a = new Object(); 這是為什麼呢? 1、首先{}這叫做物件字面量,new Object()則是使用構造器函式。 2、明顯的物件

淺談Express中的app.locals物件字面

原文:http://cnodejs.org/topic/57a5b34300bb7f2c700c7b9c 為什麼app.locals定義的鍵值對能在模板中直接訪問呢 不知道大家在使用express框架開發的過程中,有沒有過這樣的疑問,在app.locals這個物件字面

JS語言精粹學習筆記--物件字面

物件 JS的簡單資料型別包括:數字、字串、布林值(true/false)、null值和undefined,其他所有的值都是物件。數字、字串、布林值貌似物件,因為他們擁有方法,但他們是不可變的。JS中的物件是可變的鍵控集合(keyed collection)。在JS中,陣列、

ES6語法---對象字面擴展、模板字符串(5)

ons 可靠的 小數 為我 寫法 define 當前 BE dde 這節課學習ES6中對象字面量擴展和新增模板字符串 第一部分:對象字面量擴展 1.簡潔寫法   ES6對於對象字面量屬性提供了簡寫方式。   1.1:屬性簡寫 //傳統寫法

ECMAScript6ES6)標準物件Object擴充套件方法及新特性

ES6對於Object也擴增了幾個方法 不過最重要的是 ES6擴充套件了一些語法 比如說允許直接寫入變數和函式,作為物件的屬性和方法 使我們的物件更加簡潔 下面我就來詳細說明一下 語法擴充套件 簡寫物件屬性 let name = 'p

3、多用字面語法,少用與等價的方法

keys obj ble alloc ive 3.1 per 無法 bsp 1、字面字符串 摒棄: NSString *someString = [[NSString alloc] initWithString: @"Effective Objective-C 2.0"];

python_cookbook路:數據結構-解壓可叠代對象賦值給多個變以及擴展的叠代解壓語法*)

rec 3.4 open pan spl python res cor coo 1.一一對應: >>> data = [ ‘ACME‘, 50, 91.1, (2012, 12, 21) ] >>> name, shares, pri

JS 語法--物件型別構造器,class,this),高階物件高階類,Minix模式)

1、JS 物件型別   JavaScript 是一種基於原型(prototype)的面嚮物件語言,而不是基於類的面嚮物件語言   C++, Java 有類Class 和例項Instance 的概念,類是一類事物 的抽象,而例項則是類的實體。   JS是基於原型的語言,它只有原型物件的概念,原型物件就是一

ES6 Promise物件例項方法2)

ES6 Promise物件之例項方法(2) 上一篇關於Promise的文章介紹了Promise的基本用法,這一篇繼續上一篇,介紹Promise的各種方法: (1)Promise.prototype.then() then方法是定義在原型物件Promise.prototype上的。