我可以让标识符首先作为其成员进行查找,然后作为全局变量进行查找吗?

问题描述 投票:0回答:1

我写 JS(嗯,EcmaScript),但相对很少。

在编写对象的成员函数时,我自然会经常多次使用其他成员变量和函数;但我倾向于避免定义自己的全局变量,同样重要的是,我努力避免与我定义的成员混淆全局变量。

鉴于这种情况,我对必须一直使用

this
感到恼火,例如:

this.memberA = this.methodB(someInputParam, this.memberC);

我真的只想说:

memberA = methodB(someInputParam, memberC);

并且首先在

memberA
范围内查找
methodB
memberC
this
,然后在全局范围内查找。

这可以吗?

javascript scope this ecmascript-next ecmascript-2022
1个回答
0
投票

使用

this
在作用域方面有自己的好处,您可以声明任何参数和局部变量,并且它们不会与
this
' 属性发生冲突。否则你可以使用所谓的“硬物体”,我已经成功使用它们多年了:

function MyClass(){
  
  Object.assign(this, {publicMethod, publicProp: 'public'});
  
  let memberC = 2, memberA = null;
  
  function methodB(someInputParam, param2){
    return someInputParam + param2;
  }
  
  function publicMethod(){
    memberA = methodB(2, memberC);
    console.log(memberA);
  }
  
}

const my = new MyClass;
my.publicMethod();

© www.soinside.com 2019 - 2024. All rights reserved.