gpt4 book ai didi

coffeescript - 如何强制变量在coffeescript中是本地的?

转载 作者:行者123 更新时间:2023-12-04 01:33:46 25 4
gpt4 key购买 nike

鉴于以下代码:

outer=1
f=->
local=1
outer=0
local+outer

coffeescript 创建一个 varlocal但重新使用 outer :
var f, outer;

outer = 1;

f = function() {
var local;
local = 1;
outer = 0;
return local + outer;
};

这就是您的期望。

但是,如果在函数中使用局部变量,则该变量是否声明为局部变量取决于外部作用域。我知道这是一个功能,但它导致了一些错误,因为我必须检查所有外部作用域的同名变量(在我的函数之前声明)。我想知道是否有办法通过声明局部变量来防止这种类型的错误?

最佳答案

当您没有使用适当的描述性变量名称时,通常会出现这种错误。也就是说,尽管接受的答案是这样说的,但有一种方法可以隐藏外部变量:

outer=1
f=->
do (outer) ->
local=1
outer=0
local+outer

这将创建一个 IIFE,带有 outer因为这是一个论点。函数参数像 var 一样隐藏外部变量关键字,因此这将具有您期望的行为。然而,就像我说的,你真的应该更详细地命名你的变量。

关于coffeescript - 如何强制变量在coffeescript中是本地的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18230275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com