최신 버전의 Chrome에서 Object.observe로 놀고 있었는데 왜 텍스트 입력의 'value'속성에서 작동하지 않는지 궁금합니다. 아래 코드는 'foo'속성을 추가/변경하기위한 변경 사항을 기록하지만 value 속성은 변경하지 않습니다. 왜 그런지 알아? 이 이유object.observe가 입력 필드의 value 속성에 대해 작동하지 않는 이유는 무엇입니까?
var myTextInput = document.getElementById('myTextInput');
Object.observe(myTextInput, function(changes){
changes.forEach(function(change) {
console.log(change);
});
});
myTextInput.value = 'test123';
myTextInput.foo = 'bar';
DOM 노드가 호스트 객체이기 때문에 기본적으로 원하는대로 (일종의) 할 수 있습니다. 또한 Object.observe는 ES7의 일부이며 고도로 실험적이며 최종적으로 작성되지 않았습니다. –
'.value' DOM 속성은 getter/setter afair로 구현되어 있으므로 실제로 변경되지 않습니다. – Bergi
@Bergi 그럴 수있는 것처럼 보입니다. MutationObservers는 아마도 같은 이유로 입력의 value 속성을 선택하지 않습니다. 나는 가치가 어떻게 저장되어 있는지 궁금합니다. – user2054105