参考文章:
https://blog.csdn.net/qq_44163269/article/details/104627274
https://www.cnblogs.com/zuiyue_jing/p/12235644.html
https://blog.csdn.net/crazytea/article/details/53088759
https://blog.csdn.net/weixin_42805389/article/details/89436585
01 方法和函数的区别
1.1 函数
使用function声明的一段代码块,此时就有了函数fun例如
fun:function(参数){
//执行代码
} 1.2 匿名函数
没有名字的函数,只能在执行一次(每次调用其相关代码时会执行该函数一次)
function(参数):{
//执行代码
} 值得注意的是,当匿名函数用于回调函数时,function前面的success,fail,complete等就不再是函数名了。
1.3 箭头函数
箭头函数和普通函数相比,功能大致相同,区别在于:
箭头函数内部的this是整个函数全局的this,不会因对象的调用而改变;而普通函数的this通常会因随着上下文改变,因此普通函数多将this赋值给that使用。
例如:
//上传图片
uploadImg:function(event){
var that=this; //如果想要在下面的success回调函数中使用全局this对象,这里需要进行变量转换。
//使用箭头函数时,上面一行可以不写
wx.chooseImage({
count: 3,
sizeType: ['original'],
sourceType: ['album', 'camera'],
//1.
success (res) {
const tempFilePaths = res.tempFilePaths;
that.setData({
imgPaths:tempFilePaths
});
},
//2.
success :res=> { //使用箭头函数
const tempFilePaths = res.tempFilePaths;
this.setData({
imgPaths:tempFilePaths
});
},
//1.
fail(err){}
//2.
fail:err=>{}
});
}, 1.4 回调函数
1.5 函数与方法的区别
函数已经在1.1介绍过了,方法就是函数与对象融合了,例如
var obj = {
name : '张三',
age : 18
fun : function(){
console.log(this.name) //这里的this指向的是obj这个对象
}//fun就成了该对象的一个方法
}
或者这样
var abc = function(){
......
} 函数和方法本质上是一样的,只不过方法是函数的特例,是将函数值赋给了对象
方法也是函数,只是比较特殊
02 小程序回调函数的理解
个人理解回调就是回头再调用。
定义:A函数作为B函数的参数,B函数执行完之后将返回的结果作为A函数的参数,再执行A函数
理解:手机号作为外卖的参数,外卖到了之后通过,外卖员通过手机号联系我,我再去拿外卖。
function getdata(callback) {
//这里我们假设是从后端获取数据
setTimeout(function() {
//假设我们获取到数据info
var info = {
"id": 1,
"name": '张三'
}
//得到数据以后执行函数方法
callback(info)//这个就是回调函数
}, 10000)
}
function check(data) {
if (data.id == 1) {
console.log('验证成功,可以通过')
}
}
getdata(check); 上述代码的执行顺序:
- 先执行getdata函数,同时传递参数check。但check函数是回调函数,需要在getdata函数执行完毕后再执行
- getdata中有一个匿名函数setTimeout,该函数执行完毕后会得到想要的数据info
- 此时,getdata函数执行完毕,可以执行回调函数check。
- 即将得到的数据info作为参数传递给check函数

京公网安备 11010502036488号