对象进行属性赋值操作时,其执行逻辑如下所示:
1. 当前对象中是否有该属性?有,进行赋值操作;没有,进行下一步判断。
2. 对象的原型链中是否有该属性?没有,在当前对象上创建该属性,并赋值;有,进行下一步判断。
3. 原型链中该属性是否允许操作?是,在当前对象上创建同名属性,并赋值;否,属性赋值失败。
无论是属性赋值还是新建属性,都是在当前对象上进行的,不会修改原型链!第三种情况下,新建的属性将会覆盖对象从原型链继承来的同名属性。
时间: 2024-10-20 11:13:18
对象进行属性赋值操作时,其执行逻辑如下所示:
1. 当前对象中是否有该属性?有,进行赋值操作;没有,进行下一步判断。
2. 对象的原型链中是否有该属性?没有,在当前对象上创建该属性,并赋值;有,进行下一步判断。
3. 原型链中该属性是否允许操作?是,在当前对象上创建同名属性,并赋值;否,属性赋值失败。
无论是属性赋值还是新建属性,都是在当前对象上进行的,不会修改原型链!第三种情况下,新建的属性将会覆盖对象从原型链继承来的同名属性。