请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

疑问

视频中举了一个工具库类FileUtil的例子,把所有的方法都作为该类的静态方法。那这跟独自定义成一个又一个的function然后分别对外export有什么区别吗?哪种方法会更适合

正在回答 回答被采纳积分+3

1回答

keviny79 2022-07-21 23:11:19

 差别很多 ,FileUtil 比 funciton 要好很多,因为:

   1. js 定义静态方法可读性不如 FileUtil,定义格式见如下:

function fn(){             

}          

fn.x=10; //静态变量          

fn.staticmethod=function(){ //静态函数                    

 }  

  2. 从结构上 js function 不如 FileUtil 类

  3. 如果 function 式的静态函数有很多,管理和维护就远不如 FileUtil 类,自己可以体会下!

0 回复 有任何疑惑可以回复我~
  • 提问者 小生来也 #1
    export default class FileUtil {
       public static fun1(){}
       public static fun2(){}
       public static fun3(){}
    }
    
    export function fun1(){}
    export function fun2(){}
    export function fun3(){}
    
    老师理解错了,我请教的是上面这两种有什么区别哈,就是感觉像下面这种直接一个一个单独导出去不就好了,放在类里面好像多此一举的感觉
    回复 有任何疑惑可以回复我~ 2022-07-22 09:17:43
  • keviny79 回复 提问者 小生来也 #2
    首先静态函数并不是export function fun1()....这样导出。
    对比下以下两种格式,一种是类写的静态方法,一种是 js写的静态方法,简洁度和可读性可定是类一目了然
    类写的
    class Util {
      static num: number
      static trimStr() {
        console.log("剪切", this.num)
      }
      static trimAll() {
        console.log("剪切")
      }
      static convert() {
        console.log("准换")
      }
    }
    
     function 写的静态方法, 写到一个立即执行函数内,避免变量名污染+整体管理
    var Util = /** @class */ (function () {
      function Util() {}
      Util.trimStr = function () {
        console.log("剪切", this.num)
      }
      Util.trimAll = function () {
        console.log("剪切")
      }
      Util.convert = function () {
        console.log("准换")
      }
      return Util
    })()
    export const { trimStr, trimAll, convert } = Util // 导出
    回复 有任何疑惑可以回复我~ 2022-07-22 22:33:13
  • 提问者 小生来也 回复 keviny79 #3
    我下面说的那种并不是指导出静态函数,就是普通的函数。我的意思是当成普通函数一个一个导出,与弄成静态函数封装在类中有什么区别
    
    文件1的代码:
    export default class FileUtil {
       public static fun1(){}
       public static fun2(){}
       public static fun3(){}
    }
    
    文件2的代码:
    export function fun1(){}
    export function fun2(){}
    export function fun3(){}
    回复 有任何疑惑可以回复我~ 2022-07-25 09:13:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信