Javascript 是否有办法查看函数';像Chrome一样,FireFox中的s闭包?
如果我在Chrome的控制台中测试这段代码,我可以在对象[[Scopes]]中看到第一个元素名为Closure,并且它具有正确的计数器闭包名称和值。不过,我找不到一种方法可以在FireFox上实现这一点,也找不到其他替代方法Javascript 是否有办法查看函数';像Chrome一样,FireFox中的s闭包?,javascript,Javascript,如果我在Chrome的控制台中测试这段代码,我可以在对象[[Scopes]]中看到第一个元素名为Closure,并且它具有正确的计数器闭包名称和值。不过,我找不到一种方法可以在FireFox上实现这一点,也找不到其他替代方法 const counter = (function(increment, offset) { let value = offset - increment; let firstValue = offset; return function() {
const counter = (function(increment, offset) {
let value = offset - increment;
let firstValue = offset;
return function() {
firstValue; // only here for the sake of this demo
value += increment;
return value;
}
})(2, 10);
console.dir(counter); // increment: 2, value: 8, firstValue: 10
counter(); // returns 10
console.dir(counter); // increment: 2, value: 10, firstValue: 10
counter(); // returns 12
console.dir(counter); // increment: 2, value: 12, firstValue: 10
你想在这里实现什么?我发现偶尔使用console.dir()调试我的函数很有帮助,以防闭包的创建方式出现问题。我通常更喜欢在FireFox中工作,然后稍后在Chrome中进行测试,但有时我不得不以另一种方式进行测试。我更喜欢FireFox的CSS工具,我经常在运行时使用JS操作CSS。这个特殊的例子除了作为一个演示之外并没有真正的用处,因为可能不是每个看到这个问题的人都知道你可以这样看待闭包。