Javascript 使用类级变量向函数v/s传递参数的根本区别是什么?

Javascript 使用类级变量向函数v/s传递参数的根本区别是什么?,javascript,angular,typescript,Javascript,Angular,Typescript,我是Typescript和Angular-2的新手,之前有Java和Angular-1.5的经验 假设有一个组件类,其中很少有变量(比如作为JSON响应或在JSON上执行一些数学/计算后生成的变量)可以跨函数使用 将这些变量称为类级成员是否合适,即 processFunction(){ .... .... this.someVar = this.someService.getData(); .... .... this.functionA(); /

我是Typescript和Angular-2的新手,之前有Java和Angular-1.5的经验

假设有一个组件类,其中很少有变量(比如作为JSON响应或在JSON上执行一些数学/计算后生成的变量)可以跨函数使用

  • 将这些变量称为类级成员是否合适,即

    processFunction(){
        ....
        ....
        this.someVar = this.someService.getData();
        ....
        ....
        this.functionA(); //funcA needs this.someVar
        this.functionB(); //funcB needs this.someVar
    }
    
  • 将变量另存为函数作用域成员,并将其作为参数传递,即

    processFunction(){
        ....
        ....
        let someVar = this.someService.getData();
        ....
        ....
        this.functionA(someVar);
        this.functionB(someVar);
    }
    
  • 最好的方法是什么

    PS:上面的代码是更广泛用例的抽象,其中将有许多变量作为函数变量(让)作为函数参数传递

    来自Java背景,Java中的最佳实践是,如果有两个以上的函数共享变量,那么就应该有类级变量

    需要关于字体脚本正面的建议。

    按照

    德米特定律(LoD)或最小知识原理是一种设计 软件开发指南,特别是面向对象的 程序。在其一般形式中,LoD是松散结构的具体情况 耦合。该指南由东北大学的Ian Holland提出 大学即将于1987年底开学,可以简明扼要地概括 通过以下每种方式:

    • 每个单元对其他单元的了解应有限:仅与当前单元“密切”相关的单元
    • 每个单位只能和朋友交谈;不要和陌生人说话
    • 只和你的直系朋友交谈

    如果此值仅在
    processFunction
    中使用,并且在实例的整个生命周期内不存在,则它应该是一个局部变量。(所有语言,包括Java)。
    processFunction
    返回后,是否需要该属性?您会在构造函数中使用什么来初始化它?@Bergi的答案是“是”和“否”,在processFunction返回后,可能需要也可能不需要属性。想知道在这两种情况下该怎么做。答案是“是”使用实例属性,而“否”则使用局部变量。是否可以在
    processFunction()之外调用
    this.function