Javascript 定义与分配

Javascript 定义与分配,javascript,Javascript,定义。要定义属性,可以使用以下函数 obj.prop = value Object.defineProperty(obj、propName、propDesc) 此函数的主要目的是向obj添加自己的(直接)属性,其属性(可写等,见下文)由propDesc指定。第二个目的是更改属性的属性,包括其值 赋值。要赋值给属性,可以使用以下表达式 obj.prop = value 此类表达式的主要目的是更改值。在执行该更改之前,JavaScript会参考obj的原型链[1]:如果obj或其原型中的某个地方

定义。要定义属性,可以使用以下函数

obj.prop = value
Object.defineProperty(obj、propName、propDesc)

此函数的主要目的是向obj添加自己的(直接)属性,其属性(可写等,见下文)由propDesc指定。第二个目的是更改属性的属性,包括其值

赋值。要赋值给属性,可以使用以下表达式

obj.prop = value
此类表达式的主要目的是更改值。在执行该更改之前,JavaScript会参考obj的原型链[1]:如果obj或其原型中的某个地方有一个setter,那么该赋值就是对该setter的调用。赋值的副作用是,如果属性不存在,则创建一个属性——作为obj的自有属性,具有默认属性


但是这两种方法的区别和后果是什么呢?

基本上,
Object.defineProperty(obj,propName,propDesc)
为您定义对象的属性提供了更多的控制,最重要的是,每个属性的访问方式
obj.prop=value
无法控制以后(定义后)如何访问属性

重要提示:
Object.defineProperty()
将比简单的属性定义慢得多,因此除非以后需要控制如何访问属性,否则不要使用
Object.defineProperty()


您是否有具体的例子?否则很难评论。@Nerdwood我只是想知道他们之间的区别