我知道>=运算符意味着大于或等于,但我在一些源代码中看到过=>。这个运算符是什么意思?
代码如下:
promiseTargetFile(fpParams, aSkipPrompt, relatedURI).then(aDialogAccepted => {
if (!aDialogAccepted)
return;
saveAsType = fpParams.saveAsType;
file = fpParams.file;
continueSave();
}).then(null, Components.utils.reportError);
使用Arrowfunction添加简单的CRUD示例
//Arrow Function
var customers = [
{
name: 'Dave',
contact:'9192631770'
},
{
name: 'Sarah',
contact:'9192631770'
},
{
name: 'Akhil',
contact:'9928462656'
}],
// No Param READ
getFirstCustomer = () => {
console.log(this);
return customers[0];
};
console.log("First Customer "+JSON.stringify(getFirstCustomer())); // 'Dave'
//1 Param SEARCH
getNthCustomer = index=>{
if( index>customers.length)
{
return "No such thing";
}
else{
return customers[index];
}
};
console.log("Nth Customer is " +JSON.stringify(getNthCustomer(1)));
//2params ADD
addCustomer = (name, contact)=> customers.push({
'name': name,
'contact':contact
});
addCustomer('Hitesh','8888813275');
console.log("Added Customer "+JSON.stringify(customers));
//2 param UPDATE
updateCustomerName = (index, newName)=>{customers[index].name= newName};
updateCustomerName(customers.length-1,"HiteshSahu");
console.log("Updated Customer "+JSON.stringify(customers));
//1 param DELETE
removeCustomer = (customerToRemove) => customers.pop(customerToRemove);
removeCustomer(getFirstCustomer());
console.log("Removed Customer "+JSON.stringify(customers));
正如其他人所述,常规(传统)函数使用调用该函数的对象的this(例如,被单击的按钮)。相反,箭头函数使用定义该函数的对象中的this。
考虑两个几乎相同的函数:
regular = function() {
' Identical Part Here;
}
arrow = () => {
' Identical Part Here;
}
下面的代码段演示了这对于每个函数所代表的内容之间的基本区别。常规函数输出[object HTMLButtonElement],而箭头函数输出[object Window]。
<html>
<button id="btn1">Regular: `this` comes from "this button"</button>
<br><br>
<button id="btn2">Arrow: `this` comes from object that defines the function</button>
<p id="res"/>
<script>
regular = function() {
document.getElementById("res").innerHTML = this;
}
arrow = () => {
document.getElementById("res").innerHTML = this;
}
document.getElementById("btn1").addEventListener("click", regular);
document.getElementById("btn2").addEventListener("click", arrow);
</script>
</html>
这被称为箭头函数,是ECMAScript 2015规范的一部分…
Var foo = ['a', 'ab', 'abc'];
Var bar = foo。Map (f => f.length);
console.log(栏);/ / 1、2、3
比前面的语法更短:
// < es6:
Var foo = ['a', 'ab', 'abc'];
Var bar = foo.map(函数(f) {
返回f.length;
});
console.log(栏);/ / 1、2、3
DEMO
另一件很棒的事情是词汇上的。通常,你会这样做:
函数Foo() {
This.name = name;
这一点。计数= 0;
this.startCounting ();
}
Foo.prototype.startCounting = function() {
Var self = this;
setInterval(函数(){
//这是窗口,而不是Foo{},因为你可能期望
console.log(这个);//[对象窗口]
//这就是为什么我们在setInterval()之前重新分配给self
console.log (self.count);
self.count + +;
}, 1000)
}
新Foo ();
但可以用箭头这样重写:
函数Foo() {
This.name = name;
这一点。计数= 0;
this.startCounting ();
}
Foo.prototype.startCounting = function() {
setInterval(() => {
console.log(这个);// [object对象]
console.log (this.count);// 1, 2, 3
this.count + +;
}, 1000)
}
新Foo ();
DEMO
中数
更多关于语法
这里有一个关于何时使用箭头函数的很好的答案。