在javascript中捕获“'this”

时间:2017-03-21 13:10:01

标签: javascript api this chaining

我从在线资源创建了一个链API,我理解它除了一件事,我将“this”存储在变量中 - 为什么?我听到它要抓住它以保护它,我不完全确定这意味着什么。为什么我要保护“这个”以及为什么我将它存储在一个变量中,将它存储在一个变量中呢?这如何改变“这个”?我在这里和谷歌上做了快速搜索,但没有找到答案。感谢

Model

1 个答案:

答案 0 :(得分:1)

你并不是真的在变量中存储 this,而只是将引用存储到变量中的this context variable。这很好,但重要的区别。 你为什么这么做?好吧,this是一个动态引用,它总是引用当前的上下文。如果您调用新函数,则会创建一个新的上下文(或更确切地说是环境记录)。

因此,如果您不存储外部上下文function Calc中的引用,则无法在子上下文(add, sub, mult, div)中访问它,因为每个上下文都有自己的this参考