const obj = {};
console.log(obj.name = 'hello');// 为什么这个地方输出 hello
备注,其实很少会这样使用,只是在看ts中定义枚举的时候看到了类似的代码,所以理解所以提出来看看
const obj = {};
console.log(obj.name = 'hello');// 为什么这个地方输出 hello
备注,其实很少会这样使用,只是在看ts中定义枚举的时候看到了类似的代码,所以理解所以提出来看看
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答843 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
首先,参考一下ECMA对赋值运算的定义:
所以说,
obj.name = 'hello'
这个表达示最后return 'hello'
.从内存角度分析。执行这个表达式的时候,开辟一块内存,放置
hello
,obj
这个对象的一个属性name
指向这块内存。执行完这个表达式后,返回了hello
这个内存的地址。最后
console.log()
的时候就打印出了指向内存地址的值。