关于 this, 为什么说'"其他语言不允许手动切换上下文没什么不好"
在看<基于 MVC 的 JavaScript Web 富应用开发>, 中间讲 JS 的 this
我抄一段, 中文版 13 页, 先是一行代码, 然后内容 """
function.call(this, 1, 2, 3);
为什么要切换上下文? 这的确是一个问题, 因为其他编程语言不允许手动更换上下文也没什么不好. JS 中允许更换上下文是为了共享状态, 尤其是在事件回调中. (依个人所见, 这是语言审计的一个错误, 月ww这会对初学者造成一些困扰, 并引入一些 bug.)
“”"
没有看懂是为什么…
1 回复
Javascript中函数和上下文(context)是分开的。通过 function.call, 你可以把任意的函数和上下文联在一起。这和传统的编程语言很不一样,对初学者会造成一些困扰。