Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript';对象。定义属性';仅接受原型对象作为参数_Javascript_Object_Properties_Prototype - Fatal编程技术网

Javascript';对象。定义属性';仅接受原型对象作为参数

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

从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
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)查看“我看到了这个函数的第一个参数…”-您正在阅读哪些文档?关于第二个参数,它说了什么?