调用这个函数返回一个函数。
返回时此函数变量时,变量应该脱离了createComparisonFunction函数的作用域。
propertyName变量在返回的函数中应该是无法访问到的。
为什么下方的调用可以正常执行?
还是说返回函数变量时,函数变量已经保存了propertyName变量?
调用这个函数返回一个函数。
返回时此函数变量时,变量应该脱离了createComparisonFunction函数的作用域。
propertyName变量在返回的函数中应该是无法访问到的。
为什么下方的调用可以正常执行?
还是说返回函数变量时,函数变量已经保存了propertyName变量?
这个涉及到作域的问题。一个函数可以访问的作用域,包含自己的作用域,嵌套自己的作用域和全局作用域。你这里就是return的函数可以访问到嵌套自己的作用域,所以该数据是会被访问到的。建议你多看一下关于js基础的书籍,这些内容你就会清晰很多了
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
你的这句理解是错的,你应该是混淆了闭包和this指向的概念。this才会在上下文变化时被改变。
而这段代码利用的是闭包。函数体内的子函数可以访问父函数的变量。