我从在线资源创建了一个链API,我理解它除了一件事,我将“this”存储在变量中 - 为什么?我听到它要抓住它以保护它,我不完全确定这意味着什么。为什么我要保护“这个”以及为什么我将它存储在一个变量中,将它存储在一个变量中呢?这如何改变“这个”?我在这里和谷歌上做了快速搜索,但没有找到答案。感谢
Model
答案 0 :(得分:1)
你并不是真的在变量中存储 this
,而只是将引用存储到变量中的this context variable
。这很好,但重要的区别。
你为什么这么做?好吧,this
是一个动态引用,它总是引用当前的上下文。如果您调用新函数,则会创建一个新的上下文(或更确切地说是环境记录)。
因此,如果您不存储外部上下文function Calc
中的引用,则无法在子上下文(add, sub, mult, div
)中访问它,因为每个上下文都有自己的this
参考