시작하기 전에 - 지식으로는 불가능합니다.
(디버깅 기능을 만들기 전에도) 기본 원시 객체 인 String
으로 박스 처리 된 원시 문자열 유형이며 String
이 이미 프록시되어 있습니다.
좀 더 설명 :
만
const s = "hi"
아직 String
의 인스턴스가 아닌 필요 - 내장 당신의 범위에 대한 ECMAScript 구현에 의해 공급되는 기본 객체, - 그러나 원시 유형. 이러한 원시 형식은 원시 데이터 메모리 참조에 대한 포인터 일뿐입니다. 심지어 자바 같은 풀에 내장되어있어 데이터 객체의 동일한 메모리 참조가되도록
const s = "hi"
const x = new String("hi")
과 같은 사례를 최적화하는 것으로 가정합니다. 그러나 나중에 상자 String
에 의해 상자가 될 것입니다. http://bespin.cz/~ondras/html/classv8_1_1String.html
원시 형식의 경우 구독자를 추가 할 수 없습니다.
s.charAt(i)
의 래퍼 String
에 s
오토 박싱 할 것이다 : 다음 예를 들어
.
모든 원시 타입을 관찰하는 것은 모든 원시 문자열을 String
으로 박스에 넣어야한다는 것을 의미합니다. 이는 전혀 성능이 좋지 않을 것입니다.
뿐만 아니라 String
의 구현 자체가 가입자를 추가하여 이미 프록시 할 수 있어야합니다.
var proxiedString = new Proxy(String, {
defineProperty(target, propKey, propDesc) {
console.log('defined a new string')
},
set(obj, prop, value) {
console.log('set a new value to a string')
}
});
proxiedString.x = 'newPropValue'
을하고 다시 것 같아요 - 성능이 좋지 않을 것입니다 :
JS 이러한 프록시는 다음과 같이 보일 것이다 (나는 프록시에 의해 무슨 뜻인지 좀 더 이해할 수 있도록하기 위해).
기술적 인 요구 사항을 알고 있습니다. 비즈니스 요구 사항을 작성할 수 있습니까? –
IDE에 따라 특정 조건이 충족 될 경우 코드 실행을 중지시키는 조건부 중단 점을 둘 수 있습니다. 귀하의 경우에는 다음 행을 따라 뭔가를 할 수 있습니다 : 'myString.search ("& ctoken =")! == -1' –
나는 전역 조건부 중단 점을 만들고 싶지만, 불행하게도 불가능합니다. [가능한 중단 점 유형에 대한 설명 (Chrome)] (https://developers.google.com/web/tools/chrome-devtools/javascript/breakpoints) – RQman