프록시를 JSON으로 문자열화하는 방법
3498 단어 proxyfundamentalsjavascriptjson
Proxy
을 처리해야 하는 경우 반환된 값을 문자열화해야 하는 지점에 도달할 수 있습니다.다행스럽게도 ECMA 스크립트의 JSON implementation을 사용하면 개체에 대한 사용자 정의
toJSON
메서드를 정의할 수 있습니다. 좋은 내장 예제는 Date.prototype.toJson
입니다. toJSON
를 사용하면 문자열화된 개체의 일부가 정확히 무엇인지 미세 조정할 수 있습니다.프록시에서 기본 개체에 직접 액세스할 수 있고 오히려 get 트랩에서 사용자 지정 JSON을 정의할 수 있습니다.
다음 예제는 이를 쉽게 해결합니다.
const personProxy = new Proxy({}, {
get: function (target, key) {
if (key === 'toJSON') {
return () => ({ name: 'bar' })
}
if (key === 'name') return 'foo'
}
})
프록시에서
name
값을 직접 호출하면 name
를 반환합니다.그러나 Proxy 인스턴스를
JSON.stringify
에 전달할 때 Proxy에서 toJSON
호출을 시도합니다. get TraptoJSON
을 함수로 처리하기 때문에 stringify 구현은 실제로 멤버 함수인 것처럼 호출할 수 있습니다.console.log('name', { name: personProxy.name }) // "name" "{ name: 'foo' }"
console.log('json', JSON.stringify(personProxy)) // "json" "{'name':'bar'}"
Reference
이 문제에 관하여(프록시를 JSON으로 문자열화하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jankapunkt/how-stringify-proxy-to-json-10oe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)