【发布时间】:2017-01-12 16:31:52
【问题描述】:
我正在学习 node js,遇到了几次'=>',但是很难理解这意味着什么。
这是一个例子:
app.post('/add-item', (req, res) => {
// TODO: add an item to be posted
});
在上面的例子中我们真的需要这个吗?一个简单的解释会很有帮助。谢谢
【问题讨论】:
标签: javascript node.js ecmascript-6
我正在学习 node js,遇到了几次'=>',但是很难理解这意味着什么。
这是一个例子:
app.post('/add-item', (req, res) => {
// TODO: add an item to be posted
});
在上面的例子中我们真的需要这个吗?一个简单的解释会很有帮助。谢谢
【问题讨论】:
标签: javascript node.js ecmascript-6
这不是节点专有的,它是ES6 Arrow function expression
app.post('/add-item', (req, res) => {
// TODO: add an item to be posted
});
基本意思是:
app.post('/add-item', function(req, res) {
// TODO: add an item to be posted
});
这两个示例的主要区别在于第一个示例在词法上绑定了this 值。
【讨论】:
lexically binds the this value 对于认为 => 是 node.js 独有的人来说意义重大
=> 信息的其他人来说可能很有用。因此,我将其包括在内。
this 在匿名函数内部不会改变,并且总是指向包含它的对象。
这只是编写匿名函数的另一种方式:
$(document).ready(() => {
console.log('Hello I am typescript');
});
相当于JavaScript:
$(document).ready(function(){
console.log('Hello I am typescript');
});
【讨论】: