Javascript 我可以重写文本对象构造的行为吗?

Javascript 我可以重写文本对象构造的行为吗?,javascript,object,constructor,Javascript,Object,Constructor,如果我愿意,我可以重写对象函数来自定义它: Object = function (Object) { return function() { var obj = Object.apply(Object, arguments); obj.myprop = 99; return obj; }; }(Object); > Object({a:1}) Object {a: 1, myprop: 99} 我的问题是,当对象被指定

如果我愿意,我可以重写对象函数来自定义它:

Object = function (Object) {
    return function() {
        var obj = Object.apply(Object, arguments);
        obj.myprop = 99;
        return obj;
    };
}(Object);

> Object({a:1})
  Object {a: 1, myprop: 99}
我的问题是,当对象被指定为对象文字时,如果完全意识到潜在的可怕后果,是否有任何方法可以替代对象构造的行为:

> {a:1}
  Object {a: 1, myprop: 99}

你到底想在这里做什么?只是深入研究我能把规范推进多远,或者你真的在试图解决一个问题并且认为这会有用吗?因为你是对的,这是可怕的=它适用于我正在使用的特定类型的绑定框架。我很确定这是不可能的,除非我想破解一个JS解析器。但是为什么不整体地修改Object.prototype呢?每个实例都是基于此操作的,原型值由所有实例共享,然后您可以使用Object.DefinePropertyProp、Object.prototype、{get:…,set:…}和闭包包装的getter/setter来完成您可能想做的一切。谢谢,这很有用。它不完全解决我的用例,正如我所说的,我认为这是一个失败的原因,但只是为了好玩,认为我是一个2基数的家伙,并且想要在基数2中写我的数字文字,这样当我说var O= {a:111 },然后打印O.A时,它打印了7,好像我在某种程度上奇迹般地运行PalsiTimVar,在新创建的对象中的所有数值属性上。嗯,我相当确定这种重载只能在实现级别上完成,而不能在解释级别上完成。据我所知,规范并不要求数字以10为基数,但数字分辨率无法保证可访问,甚至不需要作为运行脚本所知的干净函数存在。