【发布时间】:2015-08-23 09:26:38
【问题描述】:
我正在尝试使用 Object.defineProperty 在画布元素的数据集上设置不可更改的属性。在普通物体上,这可以正常工作。但是当我尝试在数据集对象上执行此操作时,该属性仍然是可变的。
<canvas id="can" style="outline:1px solid black"></canvas>
<script>
var can = document.getElementById("can");
var obj = {};
Object.defineProperty(can.dataset,"id",{value:2,configurable:false});
Object.defineProperty(obj,"id",{value:4,configurable:false});
can.dataset.id = 55;
console.log(can.dataset.id) //Returns "55" as a string
obj.id = 55;
console.log(obj.id) //Returns 4 - unchanged
</script>
使用 writable: false 也解决不了。 有没有办法解决这个问题,是不是一个bug,我不应该这样使用Object.defineProperty吗?
【问题讨论】:
标签: javascript html dataset configurable defineproperty