由于某种原因,我厌倦了遍历对象文字以获取其长度。我想在 上定义一个length
属性Object.prototype
,我可以设置初始长度,但是我不知道当对象被修改时如何更新它?
var obj = {a:1, b:2, c:3};
Object.defineProperty(Object.prototype, 'length', {value: 0});
// obj.length === 0;
obj.d = 4;
// obj === {a:1, b:2, c:3, d:4};
// obj.length === 0;
任何字符串/数组对象都会自动执行此操作,如果您知道这是如何发生的,请赐教,如果不知道,那么您可能知道更新此自定义属性的方法吗?