亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創建可以用點表示法調用的子函數

創建可以用點表示法調用的子函數

UYOU 2021-05-04 21:09:37
背景: 基于有關如何公開Jest進行單元測試的庫的問題。現在,我想創建一個可以在點表示法內用點表示法調用的函數類(這甚至是不可能的)。首先,我目前正在使用一些方法:這是我如何修改JavaScript Math函數的示例:Math.mean = function(numericArray){    if(Math.isNumericArray(numericArray)){        return math.mean(numericArray);    }    return false;}僅供參考,小寫的math.mean()調用是對數學庫的:https ://mathjs.org/,isNumericArray只是一個驗證器,以確保傳入的是數字數組。然后我將其導出為:module.exports.mean = exports = Math.mean;因此Jest可以在我的單元測試中看到它。我的實際問題: 我想做的是創建一個名為Math.acs的上層“類”,因此您可以使用Math.acs對其進行調用。然后它將具有子功能(例如:foo()和bar()),因此您可以這樣稱呼它們:Math.acs.foo(data); 或Math.acs.bar(data);我試圖將它們封裝到IIFE中:Math.acs = (function(data) {    function foo(data){        console.log('hi mom');    };    function bar(data){        console.log("hi dad");    }    return bar;})();哪個不起作用(CLI在Math.acs下面看不到任何東西),我還嘗試了在不起作用的函數內部使用直接函數。如果這不可能的話,我不會死,但是它將使acs模塊中所需的一半左右功能集中并且易于維護。如果不可能,我可以按照上面顯示的方式編寫各個數學模塊。
查看完整描述

1 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

您需要使用具有屬性的函數并返回此函數。


Math.acs = (function(data) {

    function f() {};

    f.foo = function (data) { console.log('hi mom'); };

    f.bar = function (data) { console.log("hi dad"); };

    return f;

})();


查看完整回答
反對 回復 2021-05-13
  • 1 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號