console.log("嵌套函数中调用fn this值被赋给self" + self === o);
这个输出会是 false
。
在 JavaScript 中,比较两个对象是否相等时,实际上比较的是它们在内存中的引用地址,而不是它们的属性值。即使两个对象有相同的属性值,它们也不会被认为是相等的,除非它们指向相同的内存地址。
在给出的代码中,self
和 o
都是对象。假设它们有相同的属性值,但它们并不指向同一个内存地址,因此 self === o
表达式会返回 false
。
此外,在代码中,字符串连接操作符 +
的优先级比 ===
操作符要低,所以表达式被解析为:
("嵌套函数中调用fn this值被赋给self" + self) === o
因此,将字符串和 self
的值连接在一起,然后将结果与 o
进行严格相等比较。