昨天写代码的时候, 把一段代码复制粘贴到另一个函数里, 忘了把self
(var self = this
)改成this
了. 程序能够运行, 但是运行结果很诡异. 费了我半天时间找到问题, 原来是这个self
实际上指向的是window
.
当时感觉很蛋疼, 浪费了我这半天时间, 以为是vue的问题, 于是去他们的代码库搜了一下self
, 能搜出东西, 于是就真的以为是他们的问题了, 傻乎乎地提了个Issue.
今早一看回复, 超级尴尬, self
是window.self
, 一个只读的属性, 指向window
自己. 相关文档见这里.
window === window.window // true
window === window.self // true
太尬了.