Nik*_* So 2 javascript coffeescript
任何人都可以解释为什么这不起作用?我只是在CoffeeScript页面的"立即尝试Coffeescript"的情况下运行它,我的Chrome控制台记录了"nope",如下所示
x = true
foo = (x = x) ->
console.log if x then "works" else "nope"
foo() # "nope"
Run Code Online (Sandbox Code Playgroud)
如果我在参数定义中将x = true更改为y = true而将(x = x)更改为(x = y)
太感谢了!
Arn*_*anc 10
看看如何编译函数会使问题变得明显:
foo = function(x) {
if (x == null) x = x;
return console.log(x ? "works" : "nope");
};
Run Code Online (Sandbox Code Playgroud)
如您所见,如果x参数为null,x则为其分配.所以它仍然是空的.
因此,重命名x变量以y修复问题:
y = true
foo = (x = y) ->
console.log if x then "works" else "nope"
foo() # "nope"
Run Code Online (Sandbox Code Playgroud)