[英]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.