不确定这是错误还是预期的行为,但这次
(defn test-fn []
(let [href js/location.href
location "123"]
href))
被编译成这样(不是在高级模式下)
cognician.chat.ui.pages.insights.test_fn = (function cognician$chat$ui$pages$insights$test_fn(){
var href = location.href;
var location = "123";
return href;
});
并且局部 {{location}} 变量影响了全局的 {{location.href}},我在尝试访问它。
这种类型的事情是预期的,在JS中应该注意并绕过这种情况,但在CLJS中非常令人困惑,因为没有提示我哪里出错以及为什么代码会失败。我记得ClojureScript的一个目标就是修复JS语义,所以也许存在解决这个问题的方式?至少显示警告吧, maybe?