Javascript 为什么object.observe不适用于输入字段的value属性?
我在玩最新版本的Chrome中的Object.observe,我想知道为什么它不适用于文本输入的“value”属性。下面的代码将记录添加/更改“foo”属性的更改,但不会记录更改value属性的更改。有人知道为什么吗Javascript 为什么object.observe不适用于输入字段的value属性?,javascript,google-chrome,object.observe,Javascript,Google Chrome,Object.observe,我在玩最新版本的Chrome中的Object.observe,我想知道为什么它不适用于文本输入的“value”属性。下面的代码将记录添加/更改“foo”属性的更改,但不会记录更改value属性的更改。有人知道为什么吗 var myTextInput = document.getElementById('myTextInput'); Object.observe(myTextInput, function(changes){ changes.forEach(function(change)
var myTextInput = document.getElementById('myTextInput');
Object.observe(myTextInput, function(changes){
changes.forEach(function(change) {
console.log(change);
});
});
myTextInput.value = 'test123';
myTextInput.foo = 'bar';
我不知道为什么会这样,但由于您观察的是DOM元素的属性,所以使用这个选项可能更合适。可能是因为DOM节点是主机对象,基本上可以做任何他们想做的事情(某种程度上)。还要注意的是,
Object.observe
是ES7的一部分,具有很强的实验性,尚未最终确定。.value
DOM属性作为一个getter/setter afair实现,因此它并没有真正改变。@Bergi这似乎就是它可能的情况。出于可能相同的原因,mutationobserver也不会获取输入的value属性。我想知道值是如何存储的。这对value属性也不起作用。试过了,什么也没有得到。Addy Osmani在本文中也指出了这一点(在“限制”的底部):感谢链接!我不知道。