站長資訊網
        最全最豐富的資訊網站

        JS中定義函數的幾種方法

        JS中定義函數的幾種方法

        你知道在 JavaScript 中創建一個函數有多少種方式嗎?下面本篇文章給大家介紹一下在 JavaScript 中定義函數的幾種不同方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

        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的代碼 */ }, };  // ?使用 defineProperty const 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;   } }

        總結

        如果你把這些方式中的某幾個結合起來,還會有

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产内地精品毛片视频| 国亚洲欧美日韩精品| 337P亚洲精品色噜噜| 亚洲av无码乱码国产精品| 成人精品一区二区三区免费看 | 欧美日韩精品一区二区三区不卡| 亚洲欧美精品伊人久久| 99精品久久精品一区二区| 人妻精品久久无码区| 亚欧无码精品无码有性视频| 国产欧美精品一区二区三区四区 | 日韩精品久久久久久久电影蜜臀 | 久久久一本精品99久久精品88 | 日韩精品人成在线播放| 国产精品午夜国产小视频| 久久免费精品一区二区| 成人精品在线视频| 国产成人精品高清在线观看93| 无码人妻精品一区二区三区在线 | 成人国内精品久久久久影院VR | 久久精品成人欧美大片| 99久久精品无码一区二区毛片| 国产亚洲精品xxx| 国内精品久久九九国产精品| 97久久超碰成人精品网站| 国产精品天天看天天狠| 精品爆乳一区二区三区无码av| 久久久久99精品成人片试看| 亚洲欧洲国产精品香蕉网| 亚洲精品国产精品国自产观看 | 国内精品久久久久影院日本| 久久发布国产伦子伦精品| 亚洲精品狼友在线播放| 日韩欧精品无码视频无删节 | 久久久久无码精品国产app| 精品国产爽爽AV| 久久精品成人免费国产片小草| 久久久WWW成人免费精品| 无码AV动漫精品一区二区免费| 亚洲国产综合精品一区在线播放| 亚洲精品欧美精品日韩精品|