Javascript';对象。定义属性';仅接受原型对象作为参数
从ObjectConstructor.defineProperty我看到这个函数的第一个参数是(o:any),它表示任何对象 所以我尝试为构造函数和实例定义一个属性,如下所示:Javascript';对象。定义属性';仅接受原型对象作为参数,javascript,object,properties,prototype,Javascript,Object,Properties,Prototype,从ObjectConstructor.defineProperty我看到这个函数的第一个参数是(o:any),它表示任何对象 所以我尝试为构造函数和实例定义一个属性,如下所示: function h(){this.a='abc';} h() console.log(exports.a); Object.defineProperty(h,'b');//TypeError var hinst=new h(); Object.defineProperty(hinst,'b');//TypeError
function h(){this.a='abc';}
h()
console.log(exports.a);
Object.defineProperty(h,'b');//TypeError
var hinst=new h();
Object.defineProperty(hinst,'b');//TypeError
Object.def
实际上,两个Object.defineProperty语句都会引发运行时异常,即
TypeError:属性描述必须是对象:未定义。
为什么会发生此错误,是否有任何指示或任何关于如何使用Object.defineProperty的限制
defineProperty()方法直接在
对象,或修改对象上的现有属性,并返回
对象
正确的语法是:
Object.defineProperty(对象、属性、描述符)
相反,您的脚本缺少描述符
,代码示例:
Object.defineProperty(h,'b')代码>
下面是应如何使用的示例:
函数h(){
this.a='abc';
}
对象定义属性(h,'b'{
价值:37,
可写:对,
可枚举:正确,
可配置:true
});
var hinst=新的h();
Object.defineProperty(hinst,'b'{
价值:37,
可写:对,
可枚举:正确,
可配置:true
});
控制台日志(hinst)代码>查看“我看到了这个函数的第一个参数…”-您正在阅读哪些文档?关于第二个参数,它说了什么?