今天我在 javascript 高级程序设计第 7 章 上看到这样一段代码
var name = 'window'
var obj = {
name: 'obj',
getName: function () {
return this.name
}
}
obj.getName() // 输出 'obj'
(obj.getName)() // 输出 'obj')
(obj.getName = obj.getName)() // 输出 'window'
我理解为
(obj.getName = obj.getName)()
// 等同于
(function() { return this.name })()
不知这样想是否正确?
然后我又用 let 和 const 试了一下, 结果都输出空字符串, 说以想问下原因何在?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.