Chrome开发者工具调用Property Getter

dds*_*itz 14 google-chrome esri arcgis google-chrome-devtools

我的所有属性值都要求我单击它们才能看到它们.我怎样才能解决这个问题?

在此输入图像描述

我正在尝试查看的对象是此查询对象.它似乎与我正在尝试查看的大多数Arcgis对象一起执行此操作.

小智 6

您可以尝试通过 JSON stringify 来调用它,它会调用所有的 getter:

console.log(JSON.parse(JSON.stringify(myObj)));


Kon*_*nel 5

问题是,调用吸气剂可能会产生副作用,例如

class Dog {
  get paws() {
    console.log('paws!'); //side effect
    this.paws++; // side effect
    if(this.paws > 4) {
     throw Error('oh no'); // side effect
    }

    return this.paws;
  }
}
Run Code Online (Sandbox Code Playgroud)

每个getter都可以在您尝试调试时改变应用程序的状态或将其中断.这就是DevTools要求您手动调用这些getter的原因.即使你的getter返回一个静态值,DevTools也无法知道这一点.

如果你真的想要调用所有的getter并快速浏览一下这些值,你可以自己创建一个帮手:

class Dog {
 get _debug() {
  return {
    paws: this.paws,
    //...
  };
 }
}
Run Code Online (Sandbox Code Playgroud)

这将添加一个新的getter,它将为您调用所有其他getter,并通过单击(而不是n次单击)为您提供其值.