这个javascript代码结构的目的是什么?:
var GivenArrayOfJobs = () => {
var selectedJob: WorkerModels.JobDetailsResponseModel = {
JobId: "25c63b12-9e37-4be0-a8af-4cf237766317",
WorkerId: "56e63b12-9e37-4be0-a8af-4cf237766317"
};
return selectedJob;
}
具体来说,我不确定以下语法对比更传统的js实现的含义或优势:
var GivenArrayOfJobs = () => {
答案 0 :(得分:3)
此语法称为arrow functions,是ES2015规范中的新增内容。
一个明显的优点是编写的代码略少。
此外,箭头函数是词法范围的,所以如果你使用this
内部和箭头函数,它将绑定到词法容器。在某些情况下,这减少了显式绑定上下文的需要(例如.bind(this)
)。
在您的示例中,没有太大区别(在范围界定中)因为未使用this
,但语法(主观地)更好一些。
答案 1 :(得分:1)
这是Ecmascript 6 arrow function
。它与anonymous function
非常相似,只是它会自动将其词法范围绑定到它中。并且无法通过call
/ apply
或任何进一步的.bind(obj)
箭头功能实现:
var GivenArrayOfJobs = () => {
selectedJob.WorkerModels.JobDetailsResponseModel = {
JobId: "25c63b12-9e37-4be0-a8af-4cf237766317",
WorkerId: "56e63b12-9e37-4be0-a8af-4cf237766317"
};
return selectedJob;
}
匿名函数实现:
var GivenArrayOfJobs = function(){
selectedJob.WorkerModels.JobDetailsResponseModel = {
JobId: "25c63b12-9e37-4be0-a8af-4cf237766317",
WorkerId: "56e63b12-9e37-4be0-a8af-4cf237766317"
};
return selectedJob;
}.bind(this);