问题标签 [scope-chain]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Javascript 中的作用域链
我在 Javascript 中阅读范围链,但它对我没有任何意义,谁能告诉我什么是范围链以及它如何与图形一起工作,甚至是白痴也能理解的东西。我用谷歌搜索了它,但我没有找到可以理解的东西:(
scope - 是否有任何语言(或调试工具)具有内置函数或方法来打印范围链?
是否有任何语言或调试工具可以打印出作用域链进行检查,从而查看作用域链包含的不同情况?
ruby - Ruby 的“绑定”和 Scope Chain 一样吗?
Ruby的eval()
可以像
其中 block 是传递给函数的块。
除了块之外,还可以传入绑定对象。绑定对象是否与讨论 Javascript 闭包时经常提到的“作用域链”相同?
ruby-on-rails - 如何按 ActiveRecord 中多态模型的父属性排序?
我觉得我说的很对...
我有一个名为资产的模型,它是多态的:
我有一个充当范围的类级别方法:
我正在尝试获取其父approved_at
属性不为空的资产列表,并按该approved_at
属性按降序排列,限制为 50。我承认我不确定我所拥有的与正确性有多接近,但我现在得到的错误是:
c# - C# 和 VB lambda 是否有类似于 javascript 的**范围链**问题?
我已经读过,由于作用域链在 javascript 中的工作方式,如果我们希望在函数 F 中引用未在 F 的作用域内声明的变量 V,那么声明一个是有益的(在性能方面是的) F中引用V的局部变量V2,然后通过V2访问V引用的对象。
我想知道这个概念是否适用于 C# 和 VB 中的闭包(通过 lambda 访问函数中的局部变量)
顺便说一句,如果答案不是过早的优化是万恶之源,我更愿意
javascript - 将回调函数作为字符串传递,同时保留作用域链
对于使用 UIWebView 的 iPad 应用程序,我在 URL 中将回调函数传递给应用程序:
应用程序从 URL 解析回调函数,并通过 stringByEvaluatingJavaScriptFromString 插入一些数据来调用回调函数。这一切都很好。
但是,现在我想在回调函数中使用闭包,如下所示:
这是有问题的。由于回调函数被转换为字符串,所有作用域链信息都会丢失。
关于如何解决这个问题的任何建议?
编辑:
我更喜欢“查询”功能方面的解决方案。例如:有没有办法将作用域链中的变量转换为 eval()-able 字符串?
activerecord - 为多对多关系编写范围
我有一个包含 3 个模型的应用程序:租户、部门、标准。
和
我正在尝试在 Renter 模型中创建两个范围,让我可以按部门和标准找到租户。
这是我的代码:
使用
或者
自行工作。但是,当我尝试将它们链接起来时,
我收到一条错误消息:
此外,
关于我做错了什么的任何想法?
javascript - 强制在 JS 中向上移动范围链
有没有办法在 Javascript中引用作用域链上的下一个对象?
因此,例如:
javascript - 它是一种捕获闭包定义堆栈的方法吗?
我目前正在研究一种将 JavaScript 函数保护为private的方法,如果调用者无效,则会引发异常。那么我这里有一个问题:如果在有效调用者内部定义了一个闭包,是否可以从内部闭包中获取有效调用者?
例如:
而且,当然privateFunction1
会正确获取调用者validCaller
,但privateFunction2
会获取匿名函数作为调用者,因此访问将被拒绝。
如果我通过表达式从调用堆栈中获取validCaller,这不是正确的方法caller.caller.caller
,因为我无法确定我应该回溯多少级,并且在某些特殊情况下,匿名函数需要在validCaller
.
也许我用复杂的方式问了这个问题,简单的方法是:
如何捕获函数的作用域链?
javascript - 对象字面量中的范围链
请解释作用域链是如何在这里设置的。为什么x
incheckVars
和assign
skip 对象的范围解析mod
?