簡體   English   中英

非箭頭功能的單行縮寫?

[英]Single line shortform for non-arrow function?

有時,大多數情況下是在類中,我需要執行單行功能。

例如:

class Blah {
    getVisibilityAnimValue() { return this.state.isVisible ? 100 : 0 }
}

在ES6中,有什么友好的方法嗎? 我試圖忽略周圍的冰壺並省略了返回,但它沒有用。

否。這是創建箭頭功能的確切原因之一。

在ES6中,有什么友好的方法嗎?

不,那里沒有。 正如我想您已經知道的那樣,為了使用this來引用調用實例,您不能使用arrow函數(使用詞法this而不是基於其調用方式的this )。 因此,您必須使用常規的ES6方法定義。 因此,您需要使用大括號{}並且需要return

ES6類語法至少可以為您節省以下ES5方案:

Blah.prototype.getVisibilityAnimValue = function() {...}

我試圖忽略周圍的冰壺並省略了返回,但它沒有用。

是的,這些仍然是必需的。


如果您有很多方法可以像這樣工作並且使用相同的邏輯,則可以將邏輯分解為共享函數。

// define this once and then use it many places
function zVal(val) {
     return val ? 0 : 100;
}

getVisibilityAnimValue() { return zVal(this.state.isVisible) }

但是,對於這種簡單的事情,這是否“更好”是有爭議的,因為它現在涉及一個額外的函數調用,並且使(一眼)看到它的工作變得更加困難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM