读代码-对象和属性的连续赋值对象属性类型的问题

Posted 沿着路走到底

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读代码-对象和属性的连续赋值对象属性类型的问题相关的知识,希望对你有一定的参考价值。

对象和属性的连续赋值

以下代码,运行会输出什么

let a =  n: 1 
let b = a
a.x = a =  n: 2 

console.log(a.x) 	// undefined
console.log(b.x)    //  n: 2 

值类型 vs 引用类型

let a = 100
let b = a

let a =  n: 1 
let b = a

1

连续赋值

连续赋值是倒序执行。

PS:日常工作不可用连续赋值,可读性差

let n1, n2
n1 = n2 = 100

// // 相当于
// n2 = 100
// n1 = n2

a.x 比 赋值的优先级高

let a = 
a.x = 100

// 可拆解为:
// 1. a.x = undefined // 初始化 a.x 属性
// 2. a.x = 100 // 为 x 属性赋值

2

分析题目

以上是关于读代码-对象和属性的连续赋值对象属性类型的问题的主要内容,如果未能解决你的问题,请参考以下文章

js连续赋值

涉及泛型对象的泛型属性的赋值无法在泛型函数中正确进行类型检查

python中如何循环给对象的属性赋值???

面向对象--01--类属性方法static代码块抽象类接口内部类

js知识版图-引用类型赋值、浅拷贝、深拷贝

java如何判断对象属性是啥类型