2017-06-15 45 views
0

Javascript/ES8是否具有速記參數名稱,如Swift?lambdas的Javascript隱式參數名稱

例如。 arr.sort { $0.name > $1.name }

+3

沒有ES8這樣的東西。如果你指的是現代ES版本,它們被'Javascript'覆蓋,提案被稱爲ES.next。 JSX標籤在這裏看起來不相關,我建議添加Swift標籤,因爲它對於理解主要觀點非常重要。 – estus

+0

順便說一句,[這不是一個可用的比較函數無論如何](https://stackoverflow.com/q/24080785/1048572) – Bergi

回答

0

不,javascript不支持shorthand argument name

1

Javascript中沒有簡寫參數。最接近的替代品是arguments和ES6其餘參數。

function fn(param1, param2) { 
    const $ = arguments; 

    // by name 
    console.log(param1, param2); 

    // by order 
    console.log($[0], $[1]); 
} 

休息參數它比arguments更一致的,後者沒有在箭頭函數支持:

const fn = (...$) => { 
    // by name 
    let [param1, param2] = $; 
    console.log(param1, param2); 

    // by order 
    console.log($[0], $[1]); 
} 

注意$參數名稱是用來繪製一個類似於夫特。不建議在實踐中使用$名稱,因爲它可能與傳統的jQuery $變量混淆。包含所有參數的rest參數的常規有意義名稱是args

+0

我會改變'... $'像'... args'的東西,使它更容易讀。否則,很好的答案! –

+0

'let {param1,param2} = $;'應該是'let [param1,param2] = $',因爲'rest'運算符返回一個'Array'。但重點是:「OP」是關於速記的論點,而不是類似的東西。 – Hitmands

+0

@Hitmands當然應該,謝謝。 – estus