1. 声明函数
function sum(a, b) { return a + b; }
2. 表达式函数
// 可以命名:(function sum(a, b) { return a + b; });// 也可匿名 (avoid):(function(a, b) { return a + b; });// 也能分配给变量:const sum = function sum(a, b) { return a + b; })
3. 箭头函数
// 一般形式:(a, b) => { return a + b };// 单参数,一行返回:name => name.split(' ')// 多参数,一行返回:(a, b) => a + b// 单参数,带函数体name => { return name.split(' '); }
4. 生成器函数
function *sum(a, b) { yield a + b; }
5. 异步函数
async function sum(a, b) { return await a + b; }
6. 构造函数(avoid)
new function(‘a’, ‘b’, ‘return a + b;’);
7. 导出函数
// 默认导出export default function(a, b) { return a + b; };// 命名导出export function sum(a, b) { return a + b; };
8. 对象属性函数// 一般形式:const object = { sum: function(a, b) { return a + b; },};// 简写:const object = { sum(a, b) { return a + b; },};
9. 对象动态属性函数
const functionname = sum;const object = { [functionname]: function(a, b) { return a + b; },};
10. 对象属性的 getter/setter 函数
// 一般形式:const object = { get answer { return 42; }, set answer(value) { /* 一些操作value的代码 */ },};// 使用 definepropertyconst obj = {};object.defineproperty(obj, answer, { get() { return 42; }, set(value) { /* 一些操作value的代码 */ },});
11. 对象动态属性的 getter/setter 函数
const functionname = answer;const object = { get [functionname]() { return 42; }, set [functionname](value) { /* 一些操作value的代码 */ },};
12. 类方法函数
class compute { // 一般形式: sum(a, b) { return a + b; }}class compute { // 静态: static sum(a, b) { return a + b; };}
13. 类属性函数
class compute { // 一般形式: sum = function (a, b) { return a + b; };}class compute { // 静态: static sum = function(a, b) { return a + b; };}
14. 类私有函数
class compute { // 一般形式: #sum(a, b) { return a + b; } // 静态: static #sum(a, b) { return a + b; }}
总结如果你把这些方式中的某几个结合起来,还会有更多的可能性。 你知道还有哪些方法吗,请留言告诉我。
相关免费学习推荐:js视频教程
以上就是js中定义函数的几种方法的详细内容。
