// 自定义(匿名)函数
// The function ends with a semicolon(分号) because it is a part of an executable statement.
var x = function (a, b) {
return a * b;
};
// 匿名函数的调用:
var z = x(4, 3);
var student = {
name: 'Fatli',
birth: 1996,
age: function () {
var y = new Date().getFullYear();
return y - this.birth;
}
};
console.log(student.age); //输出fatli.age的函数体内容
console.log(student.age()); //23
JavaScript 函数
JavaScript 函数语法:
Function parameters are listed inside the parentheses () in the function definition.
Function arguments are the values received by the function when it is invoked.
Inside the function, the arguments (the parameters) behave as local variables.
形参和实参的区别:
注意:JavaScript 函数传入的参数是可选的。
JavaScript 函数分类
分类一:系统函数
分类二:自定义函数:
自定义函数方式一:
自定义函数方式二:
函数的调用
函数的调用有以下两种方式:
事件名=函数名(传递的实参值)
,例如:直接使用
函数名(传递的实参值)
,例如:函数的返回值
实例:
分类三:匿名函数(属于自定义函数)
实例一:
实例二:
实例三:
附:匿名函数通常作为(内部)自调函数使用,是为 JavaScript Function Closures(闭包)
示例: https://github.com/tastejs/todomvc/blob/gh-pages/examples/vue/js/app.js
附:回调函数
实例1: 微信小程序中的回调函数(旧文档链接已失效):https://developers.weixin.qq.com/miniprogram/dev/api/device.html 新文档链接:https://developers.weixin.qq.com/miniprogram/dev/api/device/network/wx.getNetworkType.html
实例2: https://github.com/FatliTalk/vue_json_api/blob/gh-pages/index-new-loading%26filter.html :
实例3:JavaScript 同步回调/异步回调
附一:箭头函数
1. 关于箭头函数
参考:
2. 微信小程序中使用箭头函数
参考:
ES6 中增加了箭头表达式,效果和匿名函数相似,但箭头表达式更为简练,且内部执行时的 this 与外侧一致,不再需要每次都额外增加变量引用了。
微信小程序里,对每个页面编写的代码逻辑,都作为生命周期钩子函数(如:onLoad, onShow, onUnload)和自定义函数(如:各类组件回调函数)写在 AppService 内。
这两种函数内,this 都指向当前 Page 对象,在这些函数里做的各种异步操作,回调内的 this 基本都应该仍然保持为当前 Page 对象。在这个情况下,使用箭头表达式可以减少重复的工作、也减少遗漏 this 时出错的几率。
再举一个例子,通过微信小程序提供的API
wx.getSystemInfo(Object object)
获取屏幕高度。 API文档:https://developers.weixin.qq.com/minigame/dev/api/base/system/system-info/wx.getSystemInfo.html3. 箭头函数使用场景
附二:Javascript 方法
参考:
在JavaScript中,对象的定义是这样的:
但是,如果我们给 student 绑定一个函数,就可以做更多的事情。比如,写个
age()
方法,返回 student 的年龄: