首页 >> js开发 >> js小程序中的箭头函数的具体使用js大全
js小程序中的箭头函数的具体使用js大全
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
这个是ES6的箭头函数,res =>可以理解为function(res)
箭头函数的最大好处就是省略了var that=this 从而将this改为静态。var 函数名 = 参数名 => 返回值;
var f = v => v;
//等同于
var f = function(v){
return v;
};
var f = v => v;
//等同于
var f = function(v){
return v;
};
如果不需要参数或有多个参数,要使用圆括号
var f = () => 5;
var sum = (num1,num2) => num1+num2;
var f = () => 5;
var sum = (num1,num2) => num1+num2;如果函数的代码多于一条,就必须使用大括号将其括起来,并使用retun语句
var sum = (num1, num2) => { return num1 + num2; }
var sum = (num1, num2) => { return num1 + num2; }
如果函数返回一个对象,那么必须用圆括号将其括起来
let getTempItem = id => ({ id: id, name: "Temp" });
let getTempItem = id => ({ id: id, name: "Temp" });箭头函数可以简化回调函数
如果在小程序中直接使用箭头函数的话会导致 this 丢失。
如果在小程序中直接使用箭头函数的话会导致 this 丢失。代码如下:
Page({
onLoad: () > {
console.log(this)
// 此时的 this 并不指向当前 page
}
})
Page({
onLoad: () > {
console.log(this)
// 此时的 this 并不指向当前 page
}
})
那么这种情况下,想要实现很多功能都很不方便了, 比如接受参数根据参数拉去信息等。我的解决方案很简单,使用立即执行函数
代码如下:
Page({
onLoad: function() {
let that = this
;(async () => {
console.log(that)
// 使用that,that 的作用域依然是 page 对象
// 欢乐的调用其他的任何操作,还能享用异步同步写法
await that.login()
await that.query()
})();
}
})
Page({
onLoad: function() {
let that = this
;(async () => {
console.log(that)
// 使用that,that 的作用域依然是 page 对象
// 欢乐的调用其他的任何操作,还能享用异步同步写法
await that.login()
await that.query()
})();
}
})
箭头函数的最大好处就是省略了var that=this 从而将this改为静态。var 函数名 = 参数名 => 返回值;
var f = v => v;
//等同于
var f = function(v){
return v;
};
var f = v => v;
//等同于
var f = function(v){
return v;
};
如果不需要参数或有多个参数,要使用圆括号
var f = () => 5;
var sum = (num1,num2) => num1+num2;
var f = () => 5;
var sum = (num1,num2) => num1+num2;如果函数的代码多于一条,就必须使用大括号将其括起来,并使用retun语句
var sum = (num1, num2) => { return num1 + num2; }
var sum = (num1, num2) => { return num1 + num2; }
如果函数返回一个对象,那么必须用圆括号将其括起来
let getTempItem = id => ({ id: id, name: "Temp" });
let getTempItem = id => ({ id: id, name: "Temp" });箭头函数可以简化回调函数
如果在小程序中直接使用箭头函数的话会导致 this 丢失。
如果在小程序中直接使用箭头函数的话会导致 this 丢失。代码如下:
Page({
onLoad: () > {
console.log(this)
// 此时的 this 并不指向当前 page
}
})
Page({
onLoad: () > {
console.log(this)
// 此时的 this 并不指向当前 page
}
})
那么这种情况下,想要实现很多功能都很不方便了, 比如接受参数根据参数拉去信息等。我的解决方案很简单,使用立即执行函数
代码如下:
Page({
onLoad: function() {
let that = this
;(async () => {
console.log(that)
// 使用that,that 的作用域依然是 page 对象
// 欢乐的调用其他的任何操作,还能享用异步同步写法
await that.login()
await that.query()
})();
}
})
Page({
onLoad: function() {
let that = this
;(async () => {
console.log(that)
// 使用that,that 的作用域依然是 page 对象
// 欢乐的调用其他的任何操作,还能享用异步同步写法
await that.login()
await that.query()
})();
}
})